본문 바로가기
Python - 자동화

[19편] 엑셀 데이터 기반 파워포인트 자동 생성 - 텍스트 + 표 자동 삽입 보고서

by ramzee 2025. 5. 19.

1. 왜 이걸 해야 할까?

엑셀로 정리된 실적 데이터를 파워포인트에 매번 복사해서 붙이는 건 너무 번거롭죠?

이번에는 엑셀에서 부서별 데이터를 읽어서, 슬라이드마다 자동으로 부서명 + 표 요약을 삽입하는 자동화를 실습해 봅니다.

✅ 실무 보고서 완전 자동화 ✅ 부서 수에 따라 슬라이드 수 자동 생성 ✅ 팀장, 관리자, 기획팀 필수 자동화 스킬! ---

2. 설치할 패키지

pip install pandas openpyxl python-pptx

 

3. 실습 파일 구성

- 엑셀 파일: sample1.xlsx - 주요 열: 부서, 이름, 매출액, 성과등급 등 - 슬라이드 구성: - 슬라이드 제목: "OO부 보고서" - 표 내용: 해당 부서의 데이터 전체 ---

4. 전체 코드

import pandas as pd
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.enum.shapes import MSO_SHAPE
from pptx.dml.color import RGBColor
from pathlib import Path

# 1. 경로 설정
excel_path = Path("C:/Users/YourName/Desktop/엑셀자동화/sample1.xlsx")
ppt_save_path = Path("C:/Users/YourName/Desktop/엑셀자동화/엑셀기반_자동보고서.pptx")

# 2. 엑셀 데이터 불러오기
df = pd.read_excel(excel_path)

# 3. 프레젠테이션 객체 생성
prs = Presentation()
title_slide_layout = prs.slide_layouts[5]  # 제목만
blank_slide_layout = prs.slide_layouts[6]  # 빈 슬라이드

# 4. 부서별로 슬라이드 생성
for dept in df['부서'].unique():
    dept_df = df[df['부서'] == dept]

    # 슬라이드 추가
    slide = prs.slides.add_slide(title_slide_layout)
    title = slide.shapes.title
    title.text = f"{dept} 보고서"

    # 표 슬라이드 추가
    table_slide = prs.slides.add_slide(blank_slide_layout)

    # 표 삽입
    rows, cols = dept_df.shape
    left = Inches(0.5)
    top = Inches(1)
    width = Inches(9)
    height = Inches(0.8 + rows * 0.3)

    table = table_slide.shapes.add_table(rows + 1, cols, left, top, width, height).table

    # 열 제목 삽입
    for i, col_name in enumerate(dept_df.columns):
        cell = table.cell(0, i)
        cell.text = col_name
        cell.text_frame.paragraphs[0].font.bold = True
        cell.fill.solid()
        cell.fill.fore_color.rgb = RGBColor(230, 230, 250)

    # 데이터 삽입
    for r in range(rows):
        for c in range(cols):
            text = str(dept_df.iloc[r, c])
            table.cell(r + 1, c).text = text

    print(f"✅ {dept} 슬라이드 생성 완료")

# 5. 저장
prs.save(str(ppt_save_path))
print(f"📁 자동 파워포인트 저장 완료: {ppt_save_path.name}")

---

5. 실행 결과

- 부서 수만큼 슬라이드 생성

- 각 부서 보고 제목 슬라이드 + 데이터 표 슬라이드

- 엑셀기반_자동보고서.pptx 자동 저장

---

6. 실무 확장 팁

  • 성과등급 A만 필터링하여 따로 슬라이드 구성 가능
  • 슬라이드 디자인, 색상 테마, 머리글/바닥글도 자동 삽입 가능
  • 부서장 이름, 총합, 평균 등 통계도 계산해서 삽입 가능