介紹
本文將介紹如何使用openpyxl和pptx庫來批量制作PPT獎狀。
本文假設(shè)你已經(jīng)安裝了Python/ target=_blank class=infotextkey>Python和這兩個庫。
本文的場景是:一名基層人員,要給一次比賽活動獲獎的500名選手制作獎狀,并且獎狀需要做成PPT在頒獎大會上電子展示,手上有一份名單 list.xlsx 和 PPT 獎狀模板 temp.pptx。
準(zhǔn)備工作
首先,我們需要導(dǎo)入openpyxl和python-pptx庫,以及其他一些輔助庫,如下:
import openpyxl
from pptx import Presentation
from pptx.util import Inches, Pt
import os
然后,我們需要定義一些常量,如文件名,字體,顏色等,如下:
# 文件名
Excel_FILE = 'list.xlsx'
PPT_FILE = 'temp.pptx'
OUTPUT_DIR = 'output'
# 字體
FONT_NAME = '微軟雅黑'
FONT_SIZE = 36
FONT_COLOR = 'FFFFFF'
# 占位符索引
NAME_INDEX = 0
AWARD_INDEX = 1
DATE_INDEX = 2
接下來,我們需要讀取Excel文件,獲取獲獎?wù)叩男彰勴棧约叭掌冢缦拢?/p>
# 讀取Excel文件
wb = openpyxl.load_workbook(EXCEL_FILE)
ws = wb.active
# 獲取獲獎?wù)吡斜?awardees = []
for row in ws.iter_rows(min_row=2, values_only=True):
name, award, date = row
awardees.Append((name, award, date))
最后,我們需要創(chuàng)建一個輸出目錄,用來存放生成的PPT文件,如下:
# 創(chuàng)建輸出目錄
if not os.path.exists(OUTPUT_DIR):
os.mkdir(OUTPUT_DIR)
生成PPT獎狀
首先,我們需要加載PPT模板文件,獲取幻燈片母版,以及占位符對象,如下:
# 加載PPT模板文件
prs = Presentation(PPT_FILE)
# 獲取幻燈片母版
slide_layout = prs.slide_layouts[0]
# 獲取占位符對象
placeholders = slide_layout.placeholders
然后,我們需要遍歷獲獎?wù)吡斜恚瑸槊總€獲獎?wù)呱梢粋€PPT獎狀,如下:
# 遍歷獲獎?wù)吡斜?for name, award, date in awardees:
# 生成一個PPT獎狀
slide = prs.slides.add_slide(slide_layout)
# 填充姓名
name_placeholder = slide.placeholders[NAME_INDEX]
name_placeholder.text = name
name_placeholder.font.name = FONT_NAME
name_placeholder.font.size = Pt(FONT_SIZE)
name_placeholder.font.color.rgb = FONT_COLOR
# 填充獎項
award_placeholder = slide.placeholders[AWARD_INDEX]
award_placeholder.text = award
award_placeholder.font.name = FONT_NAME
award_placeholder.font.size = Pt(FONT_SIZE)
award_placeholder.font.color.rgb = FONT_COLOR
# 填充日期
date_placeholder = slide.placeholders[DATE_INDEX]
date_placeholder.text = date
date_placeholder.font.name = FONT_NAME
date_placeholder.font.size = Pt(FONT_SIZE)
date_placeholder.font.color.rgb = FONT_COLOR
最后,我們需要保存生成的PPT文件,如下:
# 保存生成的PPT文件
output_file = os.path.join(OUTPUT_DIR, 'awards.pptx')
prs.save(output_file)
總結(jié)
本文介紹了如何使用openpyxl和python-pptx庫來批量制作PPT獎狀。
本文通過一個實際的場景,演示了如何讀取Excel文件,寫入PPT文件,以及使用PPT占位符來填充內(nèi)容。