Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- perfect
- postgres
- kitura
- ftp
- appium server
- ubuntu
- 28015
- STF_PortForwarding
- GoCD
- port forwarding
- nohup
- nGrinder
- Jupyter Notebook
- Jupyter
- insert
- postgresql
- SWIFT
- PYTHON
- appium
- mysql
- centos
- sshpass
- create table
- STF
- 실행권한
- openpyxl
- rethinkdb
- ssh
- nmap
- Materials
Archives
- Today
- Total
don't stop believing
openpyxl을 이용해서 sql 쿼리문 만들기 본문
간혹 엑셀에 있는 데이터를 DB에 넣어야 할 때가 있습니다.
많은 방법이 있지만 제가 선호하는 방법은 엑셀의 cell을 insert 문으로 변경해서 넣는 것을 선호합니다.
python의 openpyxl을 이용해서 엑셀을 sql 파일로 변경해 보겠습니다.
우선 엑셀 형태는 영어사전입니다. 단어가 있고, 한글 뜻, 영어 뜻 3개의 column으로 구성되어 있습니다.
openpyxl을 이용해 python 코드를 작성해 봅니다.
123456789101112131415161718192021222324252627282930313233343536# -*- coding:utf-8 -*-import openpyxlimport codecs# 엑셀파일 열기filename = "word-list-01.xlsm"book = openpyxl.load_workbook(filename)# 엑셀 파일의 첫번째 시트 추출하기sheet = book.worksheets[0]# sql 쿼리에 맞게 문자 변경def replaceToQuery(text):if text == None:return ""else:text = text.replace("'", "''")text = text.replace("\n", "\\n")return text# 저장할 sql 파일 오픈sqlFile = codecs.open('word_insert.sql', 'w', 'utf-8')# 시트의 각 행을 순서대로 추출하기for row in sheet.rows:word = replaceToQuery(row[0].value)means = replaceToQuery(row[1].value)example = replaceToQuery(row[2].value)# sql의 insert문으로 변경queryString = "insert into words (word, means, example) values ('%s', '%s', '%s');" % (word, means, example)# sql 파일에 쓰기sqlFile.write(queryString + '\n')sqlFile.close()
sql파일이 생성되었다면 아래와 같이 sql파일을 실행시킬 수 있습니다.
psql의 f 옵션으로 sql파일 경로를 입력합니다.
1$ psql -d tongchun -f word_insert_1.sql
'Python > openpyxl' 카테고리의 다른 글
엑셀에 내가 찾는 문자가 있는지(없는지) 검색 (0) | 2017.10.20 |
---|---|
openpyxl을 이용해 json 파일 만들기 (0) | 2017.09.25 |
openpyxl로 엑셀파일 다루기 (2) | 2017.09.25 |