接上文Python开发从零开始-50.28-Office 文档处理,本文小编与大家分享 Python 处理 Office 文档的相关知识。
(2)在 PPT 文档中添加幻灯片的链式操作
链式操作可以极大的精简上文的分解操作,同样的操作可以使用以下代码:
from pptx import Presentation# 创建一个新 PPT 文档prs = Presentation()# 获取版式对象layout = prs.slide_layouts[0]# 添加幻灯片对象slide = prs.slides.add_slide(layout)# 保存 PPT 文档prs.save('example_side_create1.pptx')
链式操作需要熟悉对象及对象方法(返回值),所谓 “知其然并知其所以然”,请大家务必在使用链式操作前进行了解。
3、获取幻灯片版式对象
前文添加幻灯片步骤中,有一段获取版式对象的语句:
# 获取版式对象layout = prs.slide_layouts[0]
这段语句中通过版式对象集合的索引获取了一个版式对象,可是对于初学者而言,“版式对象集合中到底有哪些版式对象?如何进行选择?” 一定会有疑问。下面对幻灯片集合中的版式对象及其使用进行简单介绍:
(1)母版、版式集合和版式对象示意
使用 MS PowerPoint 打开一个 PPT 文档,点击 “视图” 菜单,点击“幻灯片母版” 按钮,视图中母版、版式集合、版式对象如下图所示:

(2)遍历内置母版的版式集合
在 python-pptx 库中,一个母版对象包含版式集合,版式集合中包含了多个版式对象,遍历内置母版的版式集合中版式对象代码如下所示:
from pptx import Presentation# 创建一个新 PPT 文档prs = Presentation()# 如果 PPT 文档中只有一个母版,可以直接获取母版对象master = prs.slide_master# 获取幻灯片版式集合对象layouts = master.slide_layouts# 遍历版式集合对象并输出各版式对象名称for layout in layouts:print(layout.name)# 保存 PPT 文档prs.save('example_layout1.pptx')
代码执行后,控制台输出如下:
>>> %Run example_layouts.pyTitle SlideTitle and ContentSection HeaderTwo ContentComparisonTitle OnlyBlankContent with CaptionPicture with CaptionTitle and Vertical TextVertical Title and Text>>>
(3)各种内置版式对象的布局样式
可以使用 python-pptx 创建一个 PPT 文档,然后通过 MS PowerPoint 打开,点击 “视图” 菜单,点击“幻灯片母版” 按钮,可以查看各种内置版式对象的布局样式。常用版式对象布局的名称、索引及其描述如下:
Title Slide(标题幻灯片):slide_layouts[0],包含一个标题和副标题;
Title and Content(标题和内容):slide_layouts[1],包含一个标题和一个内容区域的布局;
Section Header(章节标题):slide_layouts[2],用于分隔演示文稿不同章节的专用版式,通常由居中大标题和可选副标题/背景装饰构成,无正文占位符;
Two Content(标题及两栏内容):slide_layouts[3],包含一个标题和两个并列内容区域的布局;
.....等。
(4)使用版式对象
了解了各种版式对象布局,可以使用 SlideLayouts 对象的索引获取版式对象:
# 从版式集合对象中获取版式对象layout = layouts[0]
或者 SlideLayouts 对象的 get_by_name() 方法获取版式对象:
# 从版式集合对象的 get_by_name() 方法获取版式对象layout = layouts.get_by_name('Title Slide')
受文章篇幅所限,下文将继续介绍 Python 处理 Office 文件的相关知识。
夜雨聆风