Python pywin32(win32com)复制和删除幻灯片页面
# 自动添加幻灯片
def duplicate_slides(_path_template, _path_dest, _slide_nums, _index=3):
"""
输入参数:
:param _path_template:PPT模板文件全路径
:param _index:PPT母版业起始索引。索引从1开始。
:param _slide_nums:将要复制的PPT页数
:param _path_dest:PPT课件存放全路径
功能:自动添加幻灯片页数。
"""
assert _path_template.exists(), f'模板文件不存在!!!<->{_path_template}'
ppt = Dispatch('PowerPoint.Application') # 启动PowerPoint
pres = ppt.Presentations.Open(_path_template) # 打开幻灯片文件
pres.Slides(_index).Copy() # 复制模板页
for _ in range(_slide_nums - 1):
pres.Slides.Paste(_index) # 粘贴模板页
pres.SaveAs(_path_dest) # 另存为
pres.Close() # 关闭 PowerPoint 文档
ppt.Quit() # 退出PowerPoint应用
# 删除ppt页面
def delete_slides(_path_template, _path_dest, _slide_nums, _index=3):
"""
输入参数:
:param _path_template:PPT模板文件全路径
:param _index:PPT母版业起始索引。索引从1开始。
:param _slide_nums:将要创建的PPT页数
:param _path_dest:PPT课件存放全路径
功能:自动添加幻灯片页数。
"""
assert _path_template.exists(), f'模板文件不存在!!!<->{_path_template}'
ppt = Dispatch('PowerPoint.Application') # 启动PowerPoint
pres = ppt.Presentations.Open(_path_template) # 打开幻灯片文件
slide_count = pres.Slides.Count # 获取幻灯片的页数
assert slide_count > _slide_nums, '幻灯片页数不足!!!'
del_list = list(range(_index, slide_count - _slide_nums))
pres.Slides.Range(del_list).Delete() # 删除第3张后面的幻灯片页面
pres.SaveAs(_path_dest) # 另存为
pres.Close() # 关闭 PowerPoint 文档
ppt.Quit() # 退出PowerPoint应用