openpyxl 은 파이썬에서 엑셀 2010 형식의 파일(xls, xlsx, xlsm) 을 다룰 수 있는 패키지입니다.

openpyxl 홈페이지에 다음 내용이 있는걸 보니 재밌게도 PHPExcel 에서 excel 다루는 법을 많이 참고했나 봅니다.

All kudos to the PHPExcel team as openpyxl was initially based on PHPExcel.


pip install openpyxl
BASH


사용

excel 생성

Workbook 객체를 만들고 여기에 내용을 기록한 후에 저장하면 새로운 엑셀 파일이 생성됩니다.


from openpyxl import Workbook

## 워크북 객체 생성
wb = Workbook()
PY


Wookbook 은 여러 개의 시트를 가질수 있으며 이는 Worksheet 객체로 표현됩니다.

현재 활성화된 Worksheet 는 active property 로 얻을수 있습니다

wb = Workbook()

ws = wb.active
PY

새로운 worksheet 생성은 create_sheet() 메서드로 가능합니다.

wb = Workbook()

ws2 = wb.create_sheet(title="내 시트")
PY
import math

from openpyxl import Workbook
from openpyxl.utils import get_column_letter

wb = Workbook()

dest_filename = 'test_book.xlsx'

## 1번째 워크시트 생성
ws1 = wb.active
ws1.title = '국가-수도'

nations = {
    '대한민국': '서울',
    '미국': '워싱턴',
    '일본': '도쿄',
    '아프가니스탄': '카불',
}

heading = [ '국가', '수도' ]
ws1.append(heading)

for n in nations.items():
    ws1.append(n)

## 2번째 워크시트 생성
ws2 = wb.create_sheet(title="Pi")

ws2['F1'] = '파이값'
ws2['F5'] = math.pi

## 3번째 워크시트 생성
ws3 = wb.create_sheet(title='Data')
for row in range(10, 20):
    for col in range(27, 54):
        cl = get_column_letter(col)
        _ = ws3.cell(column=col, row=row, value=f'{cl}{row}')

print(ws3['AA10'].value)

wb.save(filename=dest_filename)
PY

읽기

from openpyxl import load_workbook
import constants

wb = load_workbook(filename='test_book.xlsx')

ws1 = wb['국가-수도']

print(ws1['B4'].value)
PY


같이 보기

Ref