728x90

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
'Artificial Intelligence > 60. Python' 카테고리의 다른 글
| [PYTHON] xlsxwriter로 엑셀 자동화 보고서 완전 정복 (0) | 2025.07.22 |
|---|---|
| [PYTHON] xlwings로 엑셀을 직접 제어하는 실전 자동화 가이드 (0) | 2025.07.22 |
| [PYTHON] Naver OpenAPI로 구현하는 자동화와 데이터 수집의 모든 것 (0) | 2025.07.22 |
| [PYTHON] Kakao API 연동으로 자동화부터 챗봇까지 한 번에! (0) | 2025.07.22 |
| [PYTHON] pip 완벽 가이드 : 설치부터 고급 활용까지 (0) | 2025.07.22 |