엑셀 생성기 (XLSX Creator)
개요
Python openpyxl 라이브러리를 기반으로 XLSX 형식의 스프레드시트를 생성합니다. 데이터 표, 차트, 수식, 조건부 서식을 포함한 한국 비즈니스 보고서(재무 분석, KPI 대시보드, 예산 계획, 집계표)를 자동 생성합니다.
트리거 키워드
엑셀, xlsx, Excel, 스프레드시트, 표, 차트, 데이터 시트, 집계표, 예산 계획, 재무 분석, KPI 대시보드, 손익계산, 매출 분석
워크플로우
1단계: 보고서 유형 결정
사용자 요청 분석 후 보고서 유형 선택:
- KPI 대시보드: 월별 지표 추적
- 재무/매출 분석: 월별 손익, 예산 대비 실적
- 프로젝트 일정: 간트차트
- 데이터 집계표: 피벗 형식
- 급여/인사 관리: 임금 계산
2단계: 데이터 구조 설계
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment, Border
from openpyxl.chart import BarChart, LineChart, Reference
wb = Workbook()
ws = wb.active
# 헤더, 데이터, 수식, 차트 영역 설계
3단계: 시트 구성 및 데이터 입력
KPI 대시보드 예시:
시트 1: 대시보드 요약
- 핵심 KPI 카드 (목표 vs 실적)
- 월별 추이 꺾은선 차트
- 달성률 게이지 (조건부 서식)
시트 2: 월별 데이터
- 각 KPI 월별 실적 데이터
시트 3: 부서별 분류
재무/매출 분석 예시:
헤더: 구분 | 1월 | 2월 | ... | 12월 | 합계 | 전년 대비
데이터: 매출 | 비용 | 영업이익 | 영업이익률
수식: =SUM(), =AVERAGE(), =(실적-목표)/목표
조건부 서식: 목표 미달 시 빨간색, 초과 달성 시 파란색
프로젝트 간트차트 예시:
행: 업무 항목
열: 날짜 (주 단위 또는 일 단위)
표시: 시작일/종료일에 따른 셀 색상 자동 적용
4단계: 서식 적용
한국 비즈니스 표준 서식을 적용합니다:
| 항목 | 표준 값 |
|---|---|
| 숫자 형식 | #,##0 (천 단위 구분) |
| 통화 형식 | #,##0 "원" 또는 ₩#,##0 |
| 퍼센트 | 0.0% |
| 날짜 | YYYY-MM-DD 또는 YYYY년 M월 D일 |
| 헤더 배경 | 파란 계열 (#4472C4) 또는 회색 계열 |
| 합계 행 | 굵게 + 연한 배경색 |
5단계: 차트 삽입
데이터 범위를 참조하여 차트를 생성합니다:
- 막대형 차트: 월별 매출 비교
- 꺾은선형 차트: KPI 추이
- 원형 차트: 비율 분석
- 분산형 차트: 상관 관계
6단계: 수식 삽입
표준 엑셀 수식을 자동 생성합니다:
- SUM, AVERAGE, COUNT
- VLOOKUP, HLOOKUP
- IF, AND, OR
- CONCATENATE, TEXT
- 날짜/시간 함수
사용 예시
- "KPI 대시보드를 엑셀로 만들어줘 (매출, 신규 고객, 리텐션)"
- "월간 매출 분석표를 생성해줘 (1월-12월)"
- "프로젝트 일정 간트차트를 엑셀로 작성해줘"
- "급여 계산 시트를 만들어줘 (기본급, 수당, 세금)"
- "예산 대비 실적 추적표를 생성해줘"
출력 형식
- 파일 형식:
.xlsx(Excel 2007+ 호환) - 시트 구성: 다중 시트 (요약 + 데이터 + 차트)
- 인쇄 설정: A4 페이지, 페이지 번호, 인쇄 영역
- 수식 설명: 어느 셀에 어떤 수식이 사용되었는지 문서화
주의사항
Microsoft Excel 호환성
openpyxl 생성 파일은 Excel 2016+ 및 Google Sheets에서 정상 열람 가능합니다. 구버전 Excel(2003 이하)에서는 호환성 팩이 필요합니다.
대용량 데이터
10만 행 이상의 데이터는 write_only=True 모드를 사용하여 메모리 효율을 높입니다. 일반적인 보고서(수천 행 이하)는 기본 모드로 충분합니다.
한글 폰트
셀 내 한글 표시 시 '맑은 고딕' 또는 '나눔고딕' 폰트 설정을 권장합니다. 한글 폰트가 설치되지 않은 환경에서는 대체 폰트로 렌더링됩니다.
차트 제한
openpyxl 차트는 기본 형식만 지원합니다. 고급 차트(히스토그램, 폭포차트, 콤보 차트 등)가 필요한 경우 Excel에서 수동 수정하거나 xlsxwriter 라이브러리를 대안으로 사용합니다.
보안
개인정보(급여, 주민번호)가 포함된 파일은 시트 보호와 파일 암호화를 적용합니다. openpyxl은 시트 보호를 지원하지만 파일 암호화는 별도 도구가 필요합니다.
수식 언어
한국어 Excel과 영어 Excel의 수식 함수명이 다를 수 있습니다(예: SUM vs 합계). openpyxl은 영어 함수명을 사용하며, 한국어 Excel에서 자동 변환됩니다.
문제 해결
| 상황 | 해결 방법 |
|---|---|
| 파일 생성 실패 | openpyxl 설치 여부 확인: pip install openpyxl. 설치 후 재시도하세요 |
| 템플릿 미설정 | 보고서 유형과 필요한 지표 목록을 알려주시면 기본 구조로 생성해 드립니다 |
| 수식 오류 | 데이터 범위와 원하는 계산 방식을 설명해 주시면 수식을 수정해 드립니다 |
| 차트 미생성 | 차트 유형(막대/꺾은선/원형)과 데이터 범위를 명시해 주시면 생성해 드립니다 |
| 조건부 서식 미적용 | 조건(예: "1000 이상이면 빨간색")을 명확히 말씀해 주시면 적용해 드립니다 |
| 파일 크기 과대 | 이미지나 차트를 줄이거나 write_only=True 모드를 사용하세요 |
관련 스킬
moai-office:docx-generator- DOCX(Word) 문서 생성moai-office:pptx-designer- 발표용 PPT 슬라이드 생성moai-office:hwpx-writer- 한글(HWPX) 문서 생성moai-business:sbis365-analyst- SBiS365 데이터 분석 (엑셀 변환 가능)
기술 참조
- openpyxl 공식 문서: https://openpyxl.readthedocs.io/
- Excel 수식 참조: Microsoft Excel 함수 레퍼런스
- 데이터 시각화 가이드: 엑셀 차트 모범 사례