프로그래밍/python

파이썬 openpyxl로 엑셀 파일 읽기, 쓰기

콘파냐 2017. 5. 21. 10:29
반응형

VBA(Visual Basic for Application)이라고 들어봤을 것이다. 마이크로 소프트사의 오피스제품군의 응용프로그램을 개발하기 위해 보통 VBA를 많이 사용하는데 파이썬으로도 가능하다.


파이썬으로 엑셀을 다루는 대표적인 방법은 win32com과 openpyxl이다.


어떤게 좋을까 비교하다가 결국 openpyxl로 기울어 졌다. 이유는 Tutorial.. 


win32com은 자세한 Tutorial을 찾을 수 없었다. 반면에 openpyxl은 다음 사이트

https://openpyxl.readthedocs.io/en/default/index.html

에 아주 잘 정리되어 있다.


설치 방법도 나와있는데 귀찮다면 공식 파이썬 대신 아나콘다(Anaconda)를 설치하면 된다.


아나콘다는 win32com과 openpyxl 둘 다 포함하고 있다.


파이썬 아나콘다에 대한 자세한 내용은 

[프로그래밍/텐서플로우(python)] - 파이썬 아나콘다 설치하기

을 참고하자.


사실 win32com을 사용하면 파이썬 idle을 사용해서 실시간으로 엑셀에서 어떻게 데이터가 변하는지 확인하면서 코딩할 수 있다.


아쉽게도 openpyxl은 그렇지 않다. 


openpyxl 예제

  • 엑셀파일 만들기

위 코드를 실행하고 저장된 파일을 열어보면 A1 셀에 Hellow World라고 쓰여져 있을 것이다.


  • 기존 엑셀 파일 열기, 시트 추가

load_workbook : 엑셀 파일 열기

create_sheet : 시트 추가

cell : 시트(sheet)에서 행(row), col(열) 을 선택하여 값(value)을 넣는다.

결과

  • 타입추론

출력결과
yyyy-mm-dd h:mm:ss
0.5
0%


number_format : 포맷 형식 (위 출력결과 참고)

_guess_type : True로 세팅하면 타입추론 on, False면 타입추론 off.  "50%"에 대해 타입추론을 하면 %를 서식으로 인식해서 0.5가 나옴. 타입추론을 안하면 그냥 문자열 "50%"로 인식


  • 수식입력


  • 셀 병합


꽤 심플하고 파이썬으로 데이터분석을 하는 경우에 같이 사용하면 편리하겠다. 튜토리얼이 잘되있어서 예제만 한번 쭉 봐도 쉽게 이해된다.

반응형