乐于分享
好东西不私藏

Python开发从零开始-50.41-Office 文档处理

Python开发从零开始-50.41-Office 文档处理

接上文Python开发从零开始-50.40-Office 文档处理本文小编与大家分享 Python 处理 Office 文档的相关知识。

6、插入幻灯片中的对象

所谓插入实际上是在指定位置(或前或后)添加相关对象,python-pptx 中添加对象的方法基本上都没有提供指定位置添加,而是在末尾添加,所以在幻灯片中添加相关对象的主要步骤为:

  • 定位插入点,需要通过查询定位插入对象的位置;

  • 使用添加对象的方法进行添加操作。

需要注意的是:

  • 导入必要的对象;

  • 查询获取的对象可能是只读;

  • 优先使用占位符插入,应在插入对象前对上下文对象进行查询以避免误入;

  • 先做好备份,然后执行插入操作,避免插入操作导致 PPT 文档被破坏。

7、删除幻灯片的对象

python-pptx 中删除对象的方法同样很少,除集合类可使用 remove 方法外,基本都是定位和替换步骤:

  • 定位相关对象;

  • 复制相关对象及其后代码逻辑;

  • 替换相关对象;

  • 将替换后的对象及其后代码逻辑重新写入;

  • 保存 PPT 文档。

(五)python-pptx 库使用注意事项和常见误区

python‑pptx 是 Python 用来生成、修改 PPT 文档(.pptx)的第三方库,适合批量生成报告、课件、测试文档,但存在不少原生限制,实际开发中很容易踩坑。

1、主要优点

(1)纯 Python 实现,无需安装 Office / WPS,跨平台运行,适合自动化批量生成 PPT,例如批量输出多单元课程课件。

(2)支持新建幻灯片、文本框、段落、表格、图片、形状,可修改字体、颜色、大小、段落行距、项目符号,能够读取现有 PPT 内容做解析。

(3)接口简单易上手,可以循环生成大量页面,减少人工重复复制粘贴,适合标准化文档输出。

2、主要缺点

(1)不能处理旧版 “.ppt” 格式,仅支持 OpenXML 格式的 “.pptx” ,遇到二进制格式直接报错。

(2)无法直接自定义完整主题母版,不能通过代码新建版式;

(3)没有自动排版:文本框不会自动缩放、不会自动换行自适应高度;表格不支持简单方法实现单元格合并、自动列宽,需要自定义修改。

(4)对 SmartArt、复杂图表支持有限,复杂图表一般需要先在模板做好,代码修改数据,而不是从零创建。

3、常见误区

(1)试图全部用代码写样式。很多新手直接在代码里大量设置字体颜色大小,正确做法是提前做好模板 PPT,母版设置版式、字体、配色,代码只填充内容,保证整套 PPT 风格统一。全部代码写样式极易出现排版混乱。

(2)误以为文本框会自动换行、自动调整大小。大段文字会直接溢出文本框之外不可见,需要手动设置文本框尺寸,设置自动换行属性。

(3)表格直接新增行列,期望继承原有样式。新增单元格默认是空白样式,需要手动设置字体和填充色,否则表格局部格式错乱。

(4)插入图片不控制尺寸,图片直接原始大小插入,导致图片超出幻灯片边界,需要手动设置宽高,保持比例。

4、使用总结

python‑pptx 适合 “内容驱动、样式相对固定 ” 的自动化场景。核心思路是 “模板做样式,代码填数据”。尽量把版式、主题、字体、动画全部放在模板文件,代码只负责写入文字、表格数据、插入图片。遇到合并单元格、自适应排版等缺失功能,需要自行封装工具函数,同时做好输出后人工复核,避免因兼容性造成课件显示异常。

受文章篇幅所限,下文将继续介绍 Python 处理 Office 文件‌的相关知识。