엑셀 데이터를 기반으로 수료증 슬라이드 생성하기
이번 수업에서는 수료증 파워포인트 템플릿(.pptx
)과 학생 정보를 담은 엑셀(.xlsx
) 파일을 읽고, 엑셀에서 가져온 데이터를 반영한 새로운 파워포인트 슬라이드를 생성해 보겠습니다.
참고 : 컴퓨터에서 실습으로 제공된 파이썬 프로그램을 직접 실행할 경우,
템플릿 PPT
(input_file.pptx)와학생 정보
(input_file.xlsx) 파일이 파이썬 프로그램과 동일한 폴더 내 있어야 합니다.
1. 필수 라이브러리 임포트
라이브러리 불러오기
import openpyxl
from pptx import Presentation
from io import BytesIO
from pptx.enum.shapes import MSO_SHAPE_TYPE
-
io.BytesIO
: 컴퓨터의 저장 공간인 메모리 내에 바이트 데이터(0과 1로 이루어진 데이터)를 저장하고, 이를 파일처럼 사용할 수 있게 해주는 클래스입니다. -
pptx.enum.shapes.MSO_SHAPE_TYPE
: 파워포인트에서 다양한 도형의 타입을 정의하는 상수입니다. 도형, 이미지, 텍스트 박스 등의 타입을 구분할 때 사용됩니다.
2. 파워포인트 파일 및 엑셀 파일 로드
pptx, xlsx 파일 불러오기
presentation = Presentation("input_file.pptx")
wb = openpyxl.load_workbook("input_file.xlsx")
sheet = wb.active
-
Presentation("input_file.pptx")
: 파워포인트 파일을 불러옵니다. -
openpyxl.load_workbook("input_file.xlsx")
: 엑셀 파일을 불러옵니다. -
wb.active
: 엑셀 파일의 첫 번째 시트를 선택합니다.
3. 엑셀 데이터 읽기
data_sets 리스트 생성
data_sets = []
for row in sheet.iter_rows(min_row=2, values_only=True):
data = {
"AWARD_NAME": row[0],
"NAME": row[1],
"CONTENT": row[2],
"DATE": row[3],
"ORGANIZATION": row[4],
}
data_sets.append(data)
-
sheet.iter_rows()
: 엑셀 시트의 각 행을 반복해서 읽어옵니다. 여기서는 2번째 행(min_row=2
)부터 읽습니다. -
values_only=True
: 셀의 값을 직접 가져옵니다. -
data_sets.append(data)
: 각 행의 데이터를data
라는 딕셔너리로 저장하고, 리스트에 추가합니다.
4. 슬라이드 템플릿 선택
템플릿 슬라이드 선택
template_slide = presentation.slides[0]
presentation.slides[0]
: 파워포인트의 첫 번째 슬라이드를 템플릿으로 선택합니다. 이 슬라이드를 바탕으로 새 슬라이드를 생성합니다.