接上文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 文件的相关知识。
夜雨聆风