Python 엑셀 파일로 쓰고 읽는 openpyxl 라이브러리 알아보기
오늘은 Python으로 엑셀의 워크북, 시트, 셀을 조작하여 엑셀 파일을 만들어 낼 수 있는 openpyxl 패키지를 알아보려 합니다.
openpyxl 설치
우선 virtualenv로 파이썬 환경을 분리해줍니다.
pip3 install virtualenv
virtualenv -mvenv env
env라는 이름의 가상 환경을 생성합니다.
source env/bin/activate
가상환경을 폴더에서 활성화합니다.
pip3 install --upgrade pip
pip의 업그레이드가 존재하는지 확인하고 진행합니다.
pip install openpyxl
pip로 openpyxl을 설치합니다.
예제
from openpyxl import Workbook
openpyxl 패키지에서 Workbook을 가져옵니다.
workbook = Workbook()
엑셀 파일의 여러 시트가 묶여있는 워크북에 해당되는 객체를 생성합니다.
worksheet = workbook.active
worksheet.title = "New Title"
print(workbook.sheetnames)
특정 시트를 활성화하고 제목을 정할 수 있습니다.
bonus_worksheet = workbook.create_sheet("test_sheet")
print(bonus_worksheet)
혹은 별도의 시트를 만들 수도 있습니다.
대입
cell = worksheet['A4']
worksheet['A4'] = 4
print(cell)
print(cell.value)
A4 위체서 특정 수를 대입하여 기록할 수 있습니다.
값은 value 필드에 저장됩니다.
cell2 = worksheet.cell(row=4, column=2, value=10)
print(cell2)
print(cell2.value)
원하는 행과 열에 특정 값을 대입할 수 있습니다.
이 역시 값은 value 필드에 저장됩니다.
셀
col_range = bonus_worksheet['A:B']
for i in col_range:
for j in i:
print(j)
row_range = bonus_worksheet[1:5]
for i in row_range:
for j in i:
print(j)
cell_range = bonus_worksheet['A1':'B2']
for i in cell_range:
for j in i:
print(j)
슬라이스를 사용하여 셀 범위를 지정할 수 있습니다.
지정한 셀 범위로 반복문을 이용하면 해당 셀에 접근할 수 있습니다.
저장하기
workbook.save('test.xlsx')
워크북에 등록된 워크시트의 셀에 값을 대입하고 해당 워크북을 엑셀 파일로 저장할 수 있습니다.
불러오기
from openpyxl import load_workbook
workbook = load_workbook('test.xlsx')
print(workbook.sheetnames)
load_workbook으로 불러올 수 있습니다.
Written on June 19, 2019