반응형

IT·디지털 자동화 블로그 · 파이썬 엑셀 자동화
왜 자동 보고서가 필요한가
일일 매출, 출석 현황, 로그 데이터 등은 매일 새 파일로 생성됩니다. 이런 데이터를 수동으로 취합하고 요약하는 것은 비효율적입니다. 파이썬으로 자동 보고서를 구성하면 매일 데이터만 갱신해도 자동으로 최신 보고서를 만들 수 있습니다.
환경 설정
pip install pandas openpyxl
데이터 파일을 “data” 폴더에 날짜별로 저장해둡니다. 예: sales_2025-10-27.xlsx, sales_2025-10-28.xlsx
일별 데이터 불러오기
# file: daily_report.py
import pandas as pd
import glob
from datetime import datetime
# 데이터 폴더 내 엑셀 파일 불러오기
files = glob.glob("data/sales_*.xlsx")
df_list = []
for f in files:
temp = pd.read_excel(f)
temp["파일명"] = f
df_list.append(temp)
df = pd.concat(df_list, ignore_index=True)
print("파일 병합 완료:", len(files), "개")
데이터 통합 및 요약
매출, 지역, 제품군별로 그룹화하여 요약 통계를 생성합니다.
# 매출 요약
summary = df.groupby("지역")["매출"].sum().reset_index()
summary = summary.sort_values("매출", ascending=False)
print(summary.head())
보고서 서식 지정
openpyxl을 사용해 자동 서식을 추가합니다.
# 보고서 저장
with pd.ExcelWriter("자동보고서.xlsx", engine="openpyxl") as writer:
df.to_excel(writer, sheet_name="원본데이터", index=False)
summary.to_excel(writer, sheet_name="요약", index=False)
print("보고서 생성 완료!")
엑셀 내에서는 자동으로 “원본데이터”와 “요약” 시트가 생성됩니다.
자동 저장 및 버전 관리
보고서 파일명을 날짜 기반으로 자동 생성해 버전 관리합니다.
today = datetime.now().strftime("%Y%m%d")
output_name = f"report_{today}.xlsx"
summary.to_excel(output_name, index=False)
print(f"저장 완료: {output_name}")
다음 글 예고: 자동 보고서 PDF 변환 및 이메일 발송
다음 편에서는 생성된 엑셀 보고서를 PDF로 자동 변환하고, 이메일로 발송하는 방법을 다룹니다.
관련 읽을거리: 셀 값 수정 자동화 · 시트 자동 생성
반응형