본문 바로가기
Artificial Intelligence/60. Python

[PYTHON] openpyxl로 엑셀 자동화 완전 정복

by Papa Martino V 2025. 7. 22.
728x90

openpyxl로 엑셀 자동화 완전 정복
[PYTHON] openpyxl

 

 

1. openpyxl이란 무엇인가?

openpyxl은 Python에서 Excel(.xlsx) 파일을 읽고 쓰며 조작할 수 있도록 도와주는 라이브러리입니다. Microsoft Excel이 설치되어 있지 않아도 동작하며, 보고서 자동화, 데이터 집계, 폼 작성, 재무 분석 등의 분야에서 매우 유용하게 쓰입니다.

pandas보다 Excel 고유의 서식이나 수식, 차트 등을 직접 다뤄야 할 때는 openpyxl이 필수적입니다.

2. 설치 방법 및 기본 설정

pip를 통해 쉽게 설치할 수 있습니다.

pip install openpyxl

가장 기본적인 사용 예시:

from openpyxl import Workbook

wb = Workbook()
ws = wb.active
ws['A1'] = "Hello, Excel!"
wb.save("example.xlsx")
      

3. 주요 기능 요약 비교

기능 설명 지원 여부
엑셀 읽기 기존 파일에서 데이터 로드 지원
엑셀 쓰기 새로운 파일 생성 및 저장 지원
수식 작성 셀에 함수 입력 지원
서식 지정 폰트, 색상, 테두리 설정 지원
차트 생성 엑셀 내부 차트 생성 지원

4. 실전 예제: 엑셀 읽고 쓰기

1) 엑셀 파일 읽기

from openpyxl import load_workbook

wb = load_workbook("example.xlsx")
ws = wb.active
print(ws['A1'].value)
      

2) 셀 값 쓰기

ws['B1'] = 42
ws['B2'] = "=SUM(B1, 10)"  # 수식 입력
wb.save("example_modified.xlsx")
      

5. 스타일 지정과 조건부 서식

from openpyxl.styles import Font, PatternFill

ws['A1'] = "Title"
ws['A1'].font = Font(bold=True, color="FFFFFF")
ws['A1'].fill = PatternFill(fill_type="solid", fgColor="0000FF")
      

openpyxl은 글꼴, 배경색, 테두리, 정렬 등 다양한 서식 옵션을 제공합니다.

6. 반복 작업 자동화

반복문과 함께 사용하면 대량 데이터를 손쉽게 처리할 수 있습니다.

for i in range(1, 6):
    ws.cell(row=i, column=1, value=f"Data {i}")
wb.save("batch.xlsx")
      

7. 실무 활용 사례

  • 보고서 자동 생성: 정해진 템플릿에 데이터만 채워서 저장
  • 주간 실적 집계: 판매 기록을 자동 집계해 요약표 작성
  • 통계 분석 보고서: 데이터 정리 후 matplotlib과 연동 가능
  • 엑셀 기반 설문지 생성: 자동 채점 시스템 구현

8. openpyxl vs pandas 비교

항목 openpyxl pandas
엑셀 서식 유지 가능 불가
속도 느림 빠름
데이터 분석 제한적 강력함
차트 지원 지원 미지원
파일 크기 처리 소~중형에 적합 대용량에 적합

9. 자주 묻는 질문 (FAQ)

Q. xls 확장자 파일도 읽을 수 있나요?
A. 아니요. openpyxl은 .xlsx (Excel 2007 이상)만 지원합니다. .xls는 xlrd나 pyxlsb를 활용해야 합니다.
Q. 수식 계산 결과도 불러올 수 있나요?
A. openpyxl은 수식 자체만 저장하며, 계산 결과는 엑셀에서 연산된 후 저장되어야 표시됩니다.
Q. 엑셀에서 읽기 전용으로 열면 충돌이 나나요?
A. openpyxl은 파일을 쓰기 모드로 열 경우 충돌이 날 수 있으므로, 사용 전 해당 엑셀 파일을 닫아야 합니다.

10. 마무리

openpyxl은 엑셀을 코드로 제어할 수 있게 해주는 매우 강력한 도구입니다. 단순한 데이터 입력을 넘어, 스타일링, 수식 적용, 반복 작업 자동화까지 폭넓게 활용할 수 있어 비즈니스 및 분석 업무에 있어 큰 효율을 제공합니다. 반복적인 엑셀 작업에 지쳤다면, 이제 openpyxl을 활용해 나만의 자동화 솔루션을 만들어보세요. 파이썬을 통한 업무 자동화의 첫 걸음으로도 탁월한 선택입니다.

출처

728x90