ordylan橙子 2024-06-01 13:44 采纳率: 0%
浏览 18

使用python删除ppt指定页面

windows python遍历ppt每个p:cNvPr (DocumentFormat.OpenXml.Presentation.NonVisualDrawingProperties) 的name , 并按_分割。如果name的第二个_后面的值以BD开头,则保留此元素. 否则删除该元素。如果页没有保留的则删除整页.

  • 写回答

3条回答 默认 最新

  • 关注

    下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    要在Python中操作PowerPoint(PPTX)文件,你需要使用python-pptx库。首先确保你已经安装了这个库,如果没有,可以通过pip安装:

    pip install python-pptx
    

    然后,你可以按照以下步骤编写代码来遍历PPTX中的每一页,并根据条件删除或保留元素:

    1. 导入所需的模块:
    from pptx import Presentation
    from pptx.util import Inches
    from pptx.dml.color import RGBColor
    
    1. 读取PPTX文件:
    # 指定你的PPTX文件路径
    presentation_path = "path_to_your_pptx_file.pptx"
    pres = Presentation(presentation_path)
    
    1. 遍历每一页并处理p:cNvPr元素:
    for slide in pres.slides:
        for shape in slide.shapes:
            # 获取非视觉属性对象
            non_visual_props = shape.non_visual_properties
    
            # 检查`p:nvPr`标签是否存在,因为`cNvPr`是其子元素
            if non_visual_props.has_nv_pr:
                nv_pr = non_visual_props.nv_pr
    
                # 获取`p:nvPr`的文本内容
                name_text = nv_pr.text.strip()
    
                # 使用split方法按_分割,并检查第二个_后面的值
                parts = name_text.split("_")
                if len(parts) > 1 and parts[1].startswith("BD"):
                    # 如果符合条件,保留元素
                    pass
                else:
                    # 删除元素
                    shape.element.clear()
    
    1. 删除整个页面,如果页面上没有保留的元素:
        # 判断页面是否有保留的元素
        if not any(shape.element for shape in slide.shapes):
            # 删除整页
            pres.slides.remove(slide)
    
    1. 保存更改后的PPTX文件:
    # 保存处理后的PPTX文件
    new_pptx_path = "new_presentation.pptx"
    pres.save(new_pptx_path)
    

    请注意,这个代码会直接修改原始PPTX文件,如果你不想覆盖原始文件,可以先备份。此外,这个示例假设p:nvPr的文本格式是name_前缀_BD后缀,如果实际情况不同,请相应调整检查条件。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月1日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境