[Python] openpyxl로 엑셀 자동화하기 – 파일 생성부터 스타일, 조건부 서식까지 완전 정복

2025. 7. 8. 13:16·프로그래밍/Python

[Python] openpyxl로 엑셀 자동화하기 – 파일 생성부터 스타일, 조건부 서식까지 완전 정복

엑셀은 데이터 관리, 보고서, 자동화 업무에서 빠질 수 없는 도구입니다.

파이썬의 openpyxl 라이브러리를 활용하면 반복적인 엑셀 작업을 자동화할 수 있습니다.
이번 글에서는 엑셀 파일 생성, 수정, 셀 서식 적용, 조건부 서식까지 단계별 실전 예제를 소개합니다.


✅ 1. openpyxl 설치하기


pip install openpyxl

✅ 2. 엑셀 파일 생성 및 데이터 입력


from openpyxl import Workbook

# 워크북 생성 및 시트 선택
wb = Workbook()
ws = wb.active

# 헤더 및 데이터 작성
ws['A1'] = '이름'
ws['B1'] = '점수'
ws.append(['홍길동', 90])
ws.append(['김철수', 85])

# 파일 저장
wb.save("sample.xlsx")

✅ 3. 기존 엑셀 파일 열고 값 수정하기


from openpyxl import load_workbook

# 파일 열기
wb = load_workbook("sample.xlsx")
ws = wb.active

# 데이터 수정
ws['B2'] = 95  # 홍길동 점수 수정

# 다시 저장
wb.save("sample_modified.xlsx")

✅ 4. 셀 서식 지정 (폰트, 정렬, 배경색)


from openpyxl.styles import Font, Alignment, PatternFill

# 워크북 로드
wb = load_workbook("sample.xlsx")
ws = wb.active

# 스타일 정의
font = Font(bold=True, color="FFFFFF")
align = Alignment(horizontal="center")
fill = PatternFill(start_color="4F81BD", end_color="4F81BD", fill_type="solid")

# 헤더 셀에 스타일 적용
for cell in ws[1]:
    cell.font = font
    cell.alignment = align
    cell.fill = fill

wb.save("sample_styled.xlsx")

✅ 5. 조건부 서식 (90점 이상이면 녹색 배경)


from openpyxl.formatting.rule import CellIsRule
from openpyxl.styles import PatternFill

# 워크북 로드
wb = load_workbook("sample.xlsx")
ws = wb.active

# 조건부 서식 정의
green_fill = PatternFill(start_color="C6EFCE", end_color="C6EFCE", fill_type="solid")
rule = CellIsRule(operator="greaterThanOrEqual", formula=["90"], fill=green_fill)

# 범위에 적용
ws.conditional_formatting.add("B2:B10", rule)

wb.save("sample_conditional.xlsx")

✅ 6. 자주 발생하는 오류 및 해결 팁

  • PermissionError → 엑셀 파일이 열려 있는지 확인 후 닫고 실행
  • 한글 깨짐 방지 → Font(name="맑은 고딕") 등 한글 폰트 설정
  • ModuleNotFoundError → pip install openpyxl 설치 필요

📌 마무리

openpyxl은 엑셀 자동화를 위한 강력한 도구입니다.

이번 글에서 다룬 기능만으로도 반복 업무를 줄이고 생산성을 높일 수 있습니다.

반응형
저작자표시 비영리 (새창열림)

'프로그래밍 > Python' 카테고리의 다른 글

[Python] 파일 자동 정리 프로그램 만들기 – 확장자별 분류부터 이동, 삭제까지  (4) 2025.07.09
[Python] openpyxl로 엑셀 차트 자동화하기 – 라인 차트, 바 차트, 저장까지 실습 예제  (0) 2025.07.09
[Python] pandas로 CSV, JSON, Excel 완전 정복 파일 불러오기부터 저장까지 실전 예제  (2) 2025.05.21
[Python] 내 컴퓨터 중복 파일 찾기 – 해시값 비교로 이미지/문서 정리하기  (2) 2025.03.28
[Python] 나만의 명언 봇 만들기 – JSON으로 랜덤 출력하기  (2) 2025.03.28
'프로그래밍/Python' 카테고리의 다른 글
  • [Python] 파일 자동 정리 프로그램 만들기 – 확장자별 분류부터 이동, 삭제까지
  • [Python] openpyxl로 엑셀 차트 자동화하기 – 라인 차트, 바 차트, 저장까지 실습 예제
  • [Python] pandas로 CSV, JSON, Excel 완전 정복 파일 불러오기부터 저장까지 실전 예제
  • [Python] 내 컴퓨터 중복 파일 찾기 – 해시값 비교로 이미지/문서 정리하기
큐레이트
큐레이트
저의 일상을 기록하는 블로그입니다.
  • 큐레이트
    큐레이트의 기록
    큐레이트
  • 전체
    오늘
    어제
    • 분류 전체보기 (196)
      • 국내여행 (37)
        • 애견여행 (33)
        • 맛집여행 (2)
      • 프로그래밍 (88)
        • C# (24)
        • Python (27)
        • Flutter (5)
        • .NET (4)
        • ASP (7)
        • Next.js (3)
        • Html (5)
        • Tomcat (2)
        • typescript (3)
        • etc (8)
      • 일상생활 (71)
        • 다이어트일지 (70)
        • 기타 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 복이랑스마트스토어
    • 복이랑블로그
  • 공지사항

    • 블로그 소개
  • 인기 글

  • 태그

    애견동반
    식단관리
    다이어트 일지
    Flutter
    국내여행
    체중기록
    오운완
    오블완
    자동화
    식단
    웹개발
    파이썬
    Python
    C#
    애견여행
    다이어트
    제주도
    FastAPI
    운동일지
    DevExpress
    애견동반여행
    제주도애견동반여행
    pt
    iis
    HTML
    티스토리챌린지
    일상생활
    다이어트일지
    자동매매
    헬스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
큐레이트
[Python] openpyxl로 엑셀 자동화하기 – 파일 생성부터 스타일, 조건부 서식까지 완전 정복
상단으로

티스토리툴바