엑셀(.xlsx) 파일은 사무실에서 가장 흔한 데이터 형식입니다.
파이썬에서는 두 주요 라이브러리 — pandas(읽기·쓰기 편의)와 openpyxl(세밀한 제어) — 로 다룹니다.
Pandas로 읽기.
df = pd.read_excel("data.xlsx") — 첫 시트를 DataFrame으로.
pd.read_excel("...", sheet_name="매출") — 특정 시트.
pd.read_excel("...", sheet_name=None) — 모든 시트를 딕셔너리(시트명 → DataFrame)로.
Pandas로 쓰기.
df.to_excel("out.xlsx", index=False, sheet_name="결과").
여러 시트 — with pd.ExcelWriter("out.xlsx") as writer: df1.to_excel(writer, sheet_name="매출"); df2.to_excel(writer, sheet_name="비용").
한 파일에 여러 시트 깔끔하게.
openpyxl로 세밀한 제어.
셀 색상·폰트·서식·차트·수식까지 다루려면 openpyxl이 필요합니다.
from openpyxl import load_workbook.
wb = load_workbook("data.xlsx"); ws = wb["Sheet1"]; cell = ws["A1"]; cell.font = Font(bold=True).
보고서 자동 생성에 결정적.
주의 — 큰 파일.
xlsx는 압축 XML 형식이라 큰 데이터(100만 행+)에는 매우 느립니다.
큰 데이터는 CSV·Parquet 형식이 빠릅니다.
또 openpyxl은 .xlsx만 지원 — 옛날 .xls는 xlrd 또는 변환이 필요.
읽기 속도를 높이려면 read_excel(engine="calamine")(2024+, python-calamine 패키지) 같은 옵션도 있습니다.
한 줄 요약
엑셀 파일은 pandas로 읽기·쓰기(read_excel·to_excel), openpyxl로 색상·서식·차트 같은 세밀한 제어를 합니다.
큰 데이터는 xlsx보다 CSV·Parquet이 빠릅니다.
더 알아볼 것
- xlsxwriter vs openpyxl
- calamine — 빠른 새 엔진
- Excel VBA를 파이썬으로 자동화 (xlwings)