天宫鹤

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应用

 

posted on 2024-09-06 20:19  GoGrid  阅读(62)  评论(0编辑  收藏  举报

导航