Ch.1 Python 라이브러리 15선
openpyxl — 엑셀 자동화
핵심 개념
openpyxl
Python으로 엑셀 파일을 읽고 쓰는 라이브러리
Workbook
엑셀 파일 하나를 나타내는 객체
핵심 내용
openpyxl은 파이썬으로 엑셀을 직접 조작합니다
한 줄 요약: 엑셀 파일을 열어서 셀 하나하나를 읽고, 쓰고, 색칠하고, 차트까지 넣는 라이브러리. 실생활 비유: pandas가 '데이터 분석 전문가'라면, openpyxl은 '엑셀 문서 디자이너'입니다. 셀 병합, 글꼴 변경, 배경색 설정 같은 '보고서 꾸미기'에 특화되어 있어요.
보고서 서식까지 자동화
수동 (엑셀): 데이터 입력 → 셀 선택 → 글꼴 변경 → 색상 지정 → 테두리 설정. 매주 같은 작업 반복.
코드 (openpyxl): wb = Workbook()
ws.append([데이터])
cell.font = Font(bold=True)
한 번 짜면 매주 자동 실행.
설치 한 줄, 파일 생성도 한 줄
pip install openpyxlfrom openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.append(['이름', '점수'])
ws.append(['김철수', 95])
wb.save('성적.xlsx')
print('파일 저장 완료!')실행 결과: 현재 폴더에 '성적.xlsx' 파일이 생성됩니다. 열어보면 A1에 '이름', B1에 '점수', A2에 '김철수', B2에 95가 들어가 있어요.
AI에게 서식까지 요청하세요
좋은 프롬프트 예시 "openpyxl로 월간보고서.xlsx를 만들어줘. 첫 행은 헤더로 굵게 + 파란 배경, A열에 부서명, B열에 매출, C열에 전월 대비 증감률을 넣어줘. 마지막 행에 합계도 넣어줘."
프롬프트 변형 • "셀 A1:C1을 병합하고 제목을 넣어줘" • "매출이 마이너스인 셀은 빨간색으로 표시해줘" • "시트를 3개 만들고 각각 1분기, 2분기, 3분기로 이름 붙여줘"
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill
wb = Workbook()
ws = wb.active
ws.append(['부서', '매출', '증감률'])
# 헤더 스타일
for cell in ws[1]:
cell.font = Font(bold=True, color='FFFFFF')
cell.fill = PatternFill('solid', fgColor='4472C4')
wb.save('월간보고서.xlsx')학급 성적표 자동 생성기
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment
wb = Workbook()
ws = wb.active
ws.title = '성적표'
# 헤더
headers = ['이름', '국어', '수학', '영어', '평균']
ws.append(headers)
for cell in ws[1]:
cell.font = Font(bold=True, color='FFFFFF')
cell.fill = PatternFill('solid', fgColor='2F5496')
cell.alignment = Alignment(horizontal='center')
# 데이터
students = [
['김민수', 85, 92, 78],
['이지은', 90, 88, 95],
['박준호', 75, 80, 82],
]
for s in students:
avg = round(sum(s[1:]) / 3, 1)
ws.append(s + [avg])
wb.save('성적표.xlsx')
print('성적표 생성 완료!')실행 방법: `python 성적표.py` 실행하면 현재 폴더에 '성적표.xlsx'가 생성됩니다. 파란 헤더, 가운데 정렬, 평균 자동 계산까지 완료된 깔끔한 성적표를 확인하세요.
openpyxl에서 셀 값을 읽는 올바른 방법은?
핵심 용어
openpyxl
Python으로 엑셀 파일을 읽고 쓰는 라이브러리
Workbook
엑셀 파일 하나를 나타내는 객체
📋 보고서 생성
매주 반복되는 양식의 엑셀 보고서를 자동으로 생성
🎨 서식 자동화
헤더 색상, 글꼴, 셀 병합, 테두리를 코드로 일괄 적용
📑 다중 시트
여러 시트를 한 파일에 생성하고 데이터를 분배
핵심 정리
- 1openpyxl은 엑셀 파일을 코드로 직접 만들고 꾸미는 라이브러리
- 2Workbook()으로 생성, ws.append()로 데이터 추가, Font/PatternFill로 서식 적용
- 3pandas는 '분석', openpyxl은 '보고서 디자인'에 강점
- 4AI에게 서식(색상, 병합, 정렬)까지 구체적으로 요청하면 완성도 높은 코드 생성
퀴즈와 인터랙션으로 더 깊이 학습하세요
play_circle인터랙티브 레슨 시작