반응형

IT·디지털 자동화 블로그 · 파이썬 엑셀 서식 자동화
환경 설정
openpyxl은 엑셀 파일 서식 제어에 최적화된 라이브러리입니다.
pip install openpyxl
샘플 엑셀 파일 만들기
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = "매출현황"
data = [
["월", "매출", "비용", "이익"],
["1월", 120, 80, 40],
["2월", 150, 90, 60],
["3월", 180, 110, 70],
]
for row in data:
ws.append(row)
wb.save("excel_format_sample.xlsx")
print("기본 데이터 생성 완료")
폰트와 색상 지정
제목 행을 굵은 글씨로 표시하고 배경색을 추가합니다.
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill
wb = load_workbook("excel_format_sample.xlsx")
ws = wb["매출현황"]
# 제목 행 스타일 지정
header_font = Font(bold=True, color="FFFFFF")
header_fill = PatternFill("solid", fgColor="4F81BD")
for cell in ws[1]:
cell.font = header_font
cell.fill = header_fill
wb.save("excel_format_sample.xlsx")
print("폰트 및 색상 적용 완료")
테두리와 정렬
테이블 형태를 완성하기 위해 모든 셀에 테두리와 가운데 정렬을 적용합니다.
from openpyxl.styles import Alignment, Border, Side
thin = Side(style="thin", color="9CA3AF")
border = Border(left=thin, right=thin, top=thin, bottom=thin)
align_center = Alignment(horizontal="center", vertical="center")
for row in ws.iter_rows(min_row=1, max_row=ws.max_row, max_col=4):
for cell in row:
cell.border = border
cell.alignment = align_center
wb.save("excel_format_sample.xlsx")
print("테두리 및 정렬 적용 완료")
조건부 강조 서식
이익이 60 이상인 셀을 초록색으로 강조 표시합니다.
from openpyxl.formatting.rule import CellIsRule
ws.conditional_formatting.add("D2:D4",
CellIsRule(operator="greaterThanOrEqual", formula=["60"],
stopIfTrue=True,
fill=PatternFill(start_color="C6EFCE", end_color="C6EFCE", fill_type="solid")))
wb.save("excel_format_sample.xlsx")
print("조건부 서식 적용 완료")
자동 저장
날짜를 포함한 버전 이름으로 자동 저장합니다.
from datetime import datetime
today = datetime.now().strftime("%Y%m%d")
wb.save(f"excel_format_report_{today}.xlsx")
print("서식 보고서 자동 저장 완료")
다음 글 예고: 엑셀 서식 + 차트 자동 보고서 완성
다음 편에서는 이번에 만든 서식에 자동 차트를 추가하고, 완전한 보고서 형태로 자동화하는 방법을 다룹니다.
관련 읽을거리: 시트 자동 생성 · 셀 값 수정 자동화
반응형