본문 바로가기
python

python csv와 excel export 하는방법 및 엑셀 export 속도 빠르게 하는방법

by 이농이능 2018. 4. 23.

엑셀과 CSV로 하는방법


먼저, pandas와 XlsxWriter를 설치한다.


pip install pandas

pip install XlsxWriter



* pandas : 데이터 분석, 처리 등을 쉽게 하기 위해 만들어진 파이썬 패키지. 대용량 데이터를 안정적으로 쉽게 처리할 수 있다.

* XlsxWriter : 엑셀파일 처리 및 사용하기 위한 라이브러리


1
2
from pandas import DataFrame
import xlsxwriter
cs



- 엑셀 export 하는 코드

1
2
3
4
5
6
7
def export_date_excel(request):
    
    header = [ 'A','B','C']
    dataF = DataFrame(detail_list,columns= header)
    filename = '/folder/excel_.xlsx'
    dataF.to_excel(filename,'Sheet1',index=False, engine='xlsxwriter')
    ....
cs


header에는 각 열의 이름을 넣으면된다. 없어도 됨.

DataFrame 객체로 데이터를 만들고 .to_exel() 하면 끝 


engine에다 xlsxwriter을 넣지 않아도 pandas에서는 OpenPyXl 을 이용해서 엑셀파일에다 쓸수 있다. 하지만 속도가 너무 느려서 찾아보니,

xlsxwriter 모듈을 사용하여 속도 높이는 방법이 있었다.  



- csv export 하는 코드


엑셀 export하는 방법에서, 파일명과 to_csv 로만 바꿔주면 된다.


1
2
3
4
5
6
def export_date_csv(request):
 
    dataF = DataFrame(detail_list,columns= header)
    filename = '/folder/csv_.csv'
    dataF.to_csv(filename, encoding="euc-kr", index=False)
    ...

cs


그런데 한글이 있으면 깨져서 나올 수 있으니  encoding = "euc-kr" 을 해주도록 하자.





참고 :

https://stackoverflow.com/questions/23094980/why-is-it-so-much-slower-to-export-my-data-to-xlsx-than-to-xls-or-csv?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa