PPT 업무 자동화 체험하기
이번 수업에서는 파이썬으로 PPT
업무를 처리하고, 데이터를 활용해 표와 차트를 추가하는 방법을 소개합니다.
물론 간단한 슬라이드는 직접 만드는 것이 빠르겠지만, 대규모 데이터
를 바탕으로 반복적인 작업이 필요할 때는 파이썬 프로그램으로 처리하는 것이 훨씬 효율적입니다.
앞서 말씀드린 것처럼 아직 코드를 이해하려 노력하실 필요 없습니다!
모든 코드는 AI가 작성하고, AI가 설명하고, AI가 개선할 것입니다. 🙂
코드 에디터의 초록색으로 표시된 ▶︎ 실행
버튼을 누르고, 아래 코드 설명을 가볍게 읽어보세요!
가볍게 읽는 코드 설명
코드가 큰 틀에서 어떻게 작동하는지 궁금하다면 아래 내용을 참고해 주세요.
1. 참가자 데이터 준비
아래와 같이 참가자명, 신청일, 성별, 나이로 구성된 데이터를 준비합니다.
# 참가자 데이터 정의 csv_data = [ ["참가자명", "신청일", "성별", "나이"], ["참가자1", "2024-09-01", "남성", "25"], ["참가자2", "2024-09-02", "여성", "30"], ["참가자3", "2024-09-03", "남성", "35"], ["참가자4", "2024-09-04", "남성", "42"], ["참가자5", "2024-09-05", "여성", "28"], ["참가자6", "2024-09-06", "여성", "39"], ["참가자7", "2024-09-07", "남성", "24"], ]
프로그램의 목적은 아래 데이터를 바탕으로 2개의 슬라이드
를 생성하는 것입니다.
-
슬라이드 1 : 참가자 목록을 테이블(Table, 표) 형태로 표시
-
슬라이드 2 : 성별 분포를 파이(
XL_CHART_TYPE.PIE
) 차트로, 연령대 분포를 막대(XL_CHART_TYPE.COLUMN_CLUSTERED
) 차트로 시각화
2. CSV 데이터를 파이썬 변수로 변환
아래 코드는 정의된 데이터를 바탕으로 참가자 목록을 participants
변수에 저장합니다.
# 참가자 목록을 담는 변수 participants = [] # 반복문을 활용해 참가자 정보를 participants 변수에 저장 for row in csv_data[1:]: participants.append({ "name": row[0], "date": row[1], "gender": row[2], "age": int(row[3]) })
3. PowerPoint 파일 생성
이제 PowerPoint 파일을 생성하고 슬라이드를 추가해 보겠습니다.
# python-pptx 라이브러리에서 Presentation 함수를 불러오기 from pptx import Presentation # PowerPoint 파일 생성 prs = Presentation() # 슬라이드 레이아웃 선택 slide_layout = prs.slide_layouts[5] # 슬라이드 추가 slide = prs.slides.add_slide(slide_layout) # 슬라이드 제목 추가 title = slide.shapes.title # 슬라이드 제목 입력 title.text = "스타트업 이벤트 참가자"
이 코드를 실행하면 "스타트업 이벤트 참가자"라는 제목을 가진 슬라이드가 생성됩니다.
4. 참가자 정보를 표로 표시
아래와 같이 반복문
을 활용해 참가자 정보를 슬라이드에 테이블(표) 형태로 추가할 수 있습니다.
# add_table 함수를 활용해 테이블 추가 table = slide.shapes.add_table(len(participants) + 1, 4, Inches(0.5), Inches(1.5), Inches(8), Inches(3)).table # 테이블 헤더 추가 for col_index, heading in enumerate(csv_data[0]): table.cell(0, col_index).text = heading # 참가자 정보 추가 for row_index, participant in enumerate(participants, start=1): table.cell(row_index, 0).text = participant["name"] table.cell(row_index, 1).text = participant["date"] table.cell(row_index, 2).text = participant["gender"] table.cell(row_index, 3).text = str(participant["age"])
5. 데이터 시각화: 성별 분포 차트 추가
이제 파이 차트로 성별 분포를 시각화해보겠습니다.
# collections 라이브러리에서 Counter 함수 불러오기 from collections import Counter # pptx.chart.data 라이브러리에서 ChartData 함수 불러오기 from pptx.chart.data import ChartData # pptx.enum.chart 라이브러리에서 XL_CHART_TYPE 함수 불러오기 from pptx.enum.chart import XL_CHART_TYPE # 파이 차트 데이터 gender_count = Counter(p["gender"] for p in participants) # ChartData 함수를 활용해 차트 데이터 생성 chart_data = ChartData() # 차트 데이터 추가 chart_data.categories = list(gender_count.keys()) # 차트 데이터 시리즈 추가 chart_data.add_series('성별 분포', (gender_count["남성"], gender_count["여성"])) # 파이 차트 추가 chart = slide.shapes.add_chart(XL_CHART_TYPE.PIE, Inches(0.5), Inches(1.5), Inches(4), Inches(3), chart_data).chart
이제 자동으로 참가자들의 성별 분포가 파이 차트로 그려집니다.
6. 데이터 시각화: 연령대 막대 차트 추가
참가자의 나이를 20대, 30대, 40대로 그룹화하여 막대 차트를 그립니다.
# age_groups 변수에 연령대별 참가자 수 저장 age_groups = {'20대': 0, '30대': 0, '40대': 0} # 연령대 분포 데이터 생성 for participant in participants: age = participant["age"] if 20 <= age < 30: age_groups['20대'] += 1 elif 30 <= age < 40: age_groups['30대'] += 1 elif 40 <= age < 50: age_groups['40대'] += 1 # CategoryChartData 함수를 활용해 차트 데이터 생성 bar_chart_data = CategoryChartData() # 차트 데이터 추가 bar_chart_data.categories = list(age_groups.keys()) # 막대 차트 추가 bar_chart_data.add_series('연령대 분포', tuple(age_groups.values())) # 막대 차트 추가 chart = slide.shapes.add_chart(XL_CHART_TYPE.COLUMN_CLUSTERED, Inches(5), Inches(1.5), Inches(4), Inches(3), bar_chart_data).chart
7. pptx 파일 저장
마지막으로 아래 코드는 작업한 내용을 pptx
파일로 저장합니다.
# output_file.pptx 파일명으로 저장 prs.save("output_file.pptx")
앞서 말씀드린 것처럼 코드로 작업한 내용을 코드프렌즈 실습 화면에서 확인하려면, 반드시 파일명을
output_file
로 지정해주세요!
파이썬 코드로 어떻게 PPT를 만들 수 있는지 감을 잡으셨나요?
다음 수업에서는 파이썬을 활용해 docx 문서
를 만드는 과정을 체험해보겠습니다.
코드를 실행하고 결과를 확인해 보세요.
가이드라인
AI 튜터
배포
디자인
업로드
수업 노트
즐겨찾기
도움말
코드 에디터
실행 결과
문서가 비어 있습니다.
코드를 실행해보세요.