1、安装 pptx、openpyxl
2、获取ppt模板中的占位符的序号
将模板文件保存为 demo.pptx
from pptx import Presentation
prs = Presentation('demo.pptx')
slide = prs.slides.add_slide(prs.slide_layouts[0])
for ph in slide.placeholders:
phf = ph.placeholder_format
print(phf.idx)
ph.text = str(phf.idx)
prs.save('demo_no.pptx')
可以看到有两个占位符:
0 是第一个,对应的是名字
1 是第二个,对应的是id
3、打开demo_no.pptx编辑幻灯片母版
进入幻灯片母版视图:
删除多余母版:
回到普通视图模式,然后在第一个幻灯片上右键点击设置背景格式,全部应用
可以看到有两个框框:单击此处编辑标题
修改两个框框大小,并且拖到对应位置,最后保存
4、读取用户名字和id,excel文件名字为user_1.xlsx,内容:
将它们写入到demo_no.pptx文件中,批量生成幻灯片
from openpyxl import load_workbook
wb = load_workbook("user_1.xlsx")
ws = wb.active
data={}
for row in range(1,258):
name = ws['A' + str(row)].value
id = ws['B' + str(row)].value
data.setdefault(name,id)
prs = Presentation('demo_no.pptx')
slide_layout = prs.slide_layouts[0]
for name in data:
slide = prs.slides.add_slide(slide_layout)
slide.placeholders[0].text = "{}".format(name)
slide.placeholders[1].text = "({})".format(data[name])
prs.save('all.pptx')