介紹
本文將介紹如何使用
openpyxl
和
pptx
庫來批次制作PPT獎狀。
本文假設你已經安裝了python和這兩個庫。
本文的場景是:一名基層人員,要給一次比賽活動獲獎的500名選手制作獎狀,並且獎狀需要做成PPT在頒獎大會上電子展示,手上有一份名單
list.xlsx
和 PPT 獎狀樣版
temp.pptx
。
準備工作
首先,我們需要匯入
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檔,獲取獲獎者的姓名,獎項,以及日期,如下:
# 讀取Excel檔
wb = openpyxl.load_workbook(EXCEL_FILE)
ws = wb.active
# 獲取獲獎者列表
awardees = []
for row in ws.iter_rows(min_row=2, values_only=True):
name, award, date = row
awardees.append((name, award, date))
最後,我們需要建立一個輸出目錄,用來存放生成的PPT檔,如下:
# 建立輸出目錄
ifnot 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
然後,我們需要遍歷獲獎者列表,為每個獲獎者生成一個PPT獎狀,如下:
# 遍歷獲獎者列表
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)
總結
本文介紹了如何使用
openpyxl
和
python-pptx
庫來批次制作PPT獎狀。
本文透過一個實際的場景,演示了如何讀取Excel檔,寫入PPT檔,以及使用PPT占位符來填充內容。
Sora最近老火了,Sora 的出現會對短視訊、廣告、遊戲、影視行業等產業格局一定會被重塑,目前 Sora 還沒正式開放註冊,大家看到的使用體驗大部份都來自官網,或者少部份的使用者分享。
為了避免更多讀者受騙,我們直接給大家整了一個免費的。
註意是下面【 Python都知道 】公眾號,不是本公眾號,點選下方的公眾號卡片,然後回復【 sora 】 ,即可獲取最新 Sora 的最全資料。
目前已經分享了,如何申請 Sora 的內測,以及最新關於 Sora 的技術特點,使用教程、變現機遇等等。
大家如果想領取這份資料,可以點選下方的公眾號卡片,然後回復 【 sora 】 ,即可獲取最新 Sora 的最全資料。
需要提醒大家的是,Sora 目前還沒有完全開放,任何市面上付費的一些課程,都請大家謹慎選擇。
可以確定的是:未來 10-20年,一定是 AI 的大風口、大時代,如果錯過了公眾號、錯過了抖音、錯過了小紅書。
請一定不要錯過 AI +。
面對浪潮,恐懼只會讓我們佇立在原地,被巨浪吞噬。
要去主動適應它,不被恐懼束縛,動起胳膊動起腳,才不會被淘汰。
註意是下面【 Python都知道 】公眾號,不是本公眾號,點選下方的公眾號卡片,然後回復 【 sora 】 ,即可獲取最新 Sora 的最全資料。