Ch.1 Python 라이브러리 15선

openpyxl — 엑셀 자동화

lightbulb

핵심 개념

openpyxl

Python으로 엑셀 파일을 읽고 쓰는 라이브러리

Workbook

엑셀 파일 하나를 나타내는 객체


article

핵심 내용

openpyxl은 파이썬으로 엑셀을 직접 조작합니다

한 줄 요약: 엑셀 파일을 열어서 셀 하나하나를 읽고, 쓰고, 색칠하고, 차트까지 넣는 라이브러리. 실생활 비유: pandas가 '데이터 분석 전문가'라면, openpyxl은 '엑셀 문서 디자이너'입니다. 셀 병합, 글꼴 변경, 배경색 설정 같은 '보고서 꾸미기'에 특화되어 있어요.

보고서 서식까지 자동화

수동 (엑셀): 데이터 입력 → 셀 선택 → 글꼴 변경 → 색상 지정 → 테두리 설정. 매주 같은 작업 반복.

코드 (openpyxl): wb = Workbook()

ws.append([데이터])

cell.font = Font(bold=True)

한 번 짜면 매주 자동 실행.

설치 한 줄, 파일 생성도 한 줄

pip install openpyxl
from 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에서 셀 값을 읽는 올바른 방법은?

key

핵심 용어

📗

openpyxl

Python으로 엑셀 파일을 읽고 쓰는 라이브러리

📑

Workbook

엑셀 파일 하나를 나타내는 객체

📋 보고서 생성

매주 반복되는 양식의 엑셀 보고서를 자동으로 생성

🎨 서식 자동화

헤더 색상, 글꼴, 셀 병합, 테두리를 코드로 일괄 적용

📑 다중 시트

여러 시트를 한 파일에 생성하고 데이터를 분배

check_circle

핵심 정리

  • 1openpyxl은 엑셀 파일을 코드로 직접 만들고 꾸미는 라이브러리
  • 2Workbook()으로 생성, ws.append()로 데이터 추가, Font/PatternFill로 서식 적용
  • 3pandas는 '분석', openpyxl은 '보고서 디자인'에 강점
  • 4AI에게 서식(색상, 병합, 정렬)까지 구체적으로 요청하면 완성도 높은 코드 생성

퀴즈와 인터랙션으로 더 깊이 학습하세요

play_circle인터랙티브 레슨 시작