본문 바로가기

About 배우고 익히는법/Python

[Python] OpenPyXL : 설치, 읽기

파이썬 프로그램은 OpenPyXL 모듈로 엑셀 파일을 읽고 수정할 수 있다.
파이썬은 이 모듈을 내장하고 있지 않으므로 따로 설치해야 한다.

C:\> pip install openpyxl

pip install 을 이용하여 설치하려고 했더니, 2.4.8 이 설치되다가 pyinstaller를 설치할 때와 마찬가지로 오류가 발생한다.
그 때와 마찬가지로 더 최신의 개발자 버전을 찾아서 다운로드 받고, 그 파일로 설치하기로 한다.
https://pypi.python.org/pypi/openpyxl 이 곳에서 2.5.0a2 버전을 받아서 압축을 풀고, 설치한다.

C:\> cd python36/openpyxl-2.5.0a2 C:\Python36\openpyxl-2.5.0a2> python setup.py install

이렇게 설치해보니 특별한 오류 메시지 없이 설치된 것을 확인할 수 있다.

이 예제에서 참고할 엑셀 파일 : example.xlsx

openpyxl.load_workbook('파일명')을 통해 엑셀 문서를 열 수 있고,
get_sheet_names() 로 시트의 목록을 볼 수 있다.

>>> import openpyxl >>> excel_file = openpyxl.load_workbook('example.xlsx') >>> type(excel_file) <class 'openpyxl.workbook.workbook.Workbook'> >>> excel_file.get_sheet_names() ['Sheet1', 'Sheet2', 'Sheet3']

마찬가지로 get_sheet_by_name('시트명') 으로 특정 시트를 불러올 수 있고,
get_active_sheet() 으로 활성화된 시트를 불러올 수 있다.

>>> sheet = excel_file.get_sheet_by_name('Sheet2') >>> type(sheet) <class 'openpyxl.worksheet.worksheet.Worksheet'> >>> excel_file.get_active_sheet() <Worksheet "Sheet1">

워크시트['열행'] 로 특정 셀을 불러올 수 있으며,
반대로 특정 셀에서 셀.row 로 행을, c.column으로 열을, c.coordinate로 열행 을 불러올 수 있다.

>>> sheet1 = excel_file.get_sheet_by_name('Sheet1') >>> cell_B1 = sheet1['B1'] >>> B1.value 'Apples' >>> B1.row 1 >>> B1.column 'B' >>> B1.coordinate 'B1'