使用 Python 创建和更新 PowerPoint 演示文稿

2025年3月17日 | 阅读 10 分钟

在接下来的教程中,我们将了解如何使用 Python 编程语言创建和更新 PowerPoint 演示文稿。为了完成这项任务,我们将使用 python-pptx 库。

那么,让我们开始吧。

了解 python-pptx 库

python-pptx 是一个用于创建和编辑 PowerPoint (.pptx) 文件的 Python 库。此库与 Microsoft Office 2003 及更早版本不兼容。我们可以使用此库插入形状、段落、文本和幻灯片,并执行许多其他活动。

典型的应用场景是根据数据库内容生成自定义的 PowerPoint 演示文稿,用户可以通过单击 Web 应用程序中的链接进行下载。一些开发人员已利用此库根据其工作管理系统中的信息来自动化生成准备好的工程状态报告。我们还可以使用它来批量更新演示文稿库或自动生成手动完成起来很繁琐的一两张幻灯片。

python-pptx 库的一些特性

python-pptx 库具有以下特性,并且还有更多特性正在开发中

  1. 此库可以往返处理任何 Open XML 演示文稿(.pptx 文件),包括其所有元素。
  2. 此库还可以添加幻灯片。
  3. 此库还可以填充文本占位符。例如,我们可以创建项目符号幻灯片。
  4. 此库可以在幻灯片中插入文本框,并有助于操作文本字体大小和加粗。
  5. 我们可以使用它向幻灯片添加表格。
  6. 此库允许我们将自动形状(例如,多边形、流程图形状等)插入到幻灯片中。
  7. 我们甚至可以添加和操作柱状图、条形图、折线图和饼图。
  8. 使用此库,我们还可以访问和修改核心文档属性,例如标题和主题。

如何安装 python-pptx 库?

为了安装 Python 模块,我们需要 'pip',这是一个用于管理安装来自受信任的公共存储库的模块所需包的框架。一旦我们有了 'pip',我们就可以通过 Windows 命令提示符 (CMD) 或终端中的命令来安装 python-pptx 模块,如下所示

语法

验证安装

模块安装完成后,我们可以通过创建一个空的 Python 程序文件并写入如下 import 语句来验证它:

文件:verify.py

现在,保存上述文件并在终端中使用以下命令执行它:

语法

如果上述 Python 程序文件未返回任何错误,则模块已正确安装。但是,如果引发异常,请尝试重新安装模块,并且还建议参考模块的官方文档。

现在,让我们通过示例了解 python-pptx 库的工作原理。

使用标题和副标题幻灯片创建新的 PowerPoint 文件

我们可以使用 pptx 库的 Presentation 类创建新的 PowerPoint 文件。然后,我们可以使用 slide_layouts 属性创建幻灯片布局,并创建一个幻灯片对象,使用 add_slide() 方法将其添加到演示文稿文件中。

我们可以使用 title 和 placeholder 属性向幻灯片添加标题和副标题,并在 text 属性下指定文本。

让我们看下面的代码片段来说明这一点:

示例

输出

Creating and Updating PowerPoint Presentation using Python

说明

在上面的代码片段中,我们从 pptx 库中导入了 Presentation 类。然后,我们创建了 Presentation 类的对象。然后,我们使用 slide_layouts[n] 属性创建了第一张幻灯片的布局,其中 n 是 PPT 文件中幻灯片的索引。然后,我们使用 add_slide() 方法创建了一个幻灯片对象以添加到 PPT 文件中。然后,我们使用 titleplaceholders[n] 属性向幻灯片添加标题和副标题。最后,我们使用 text 属性添加了标题和副标题的文本,并保存了 PPT 文件。

创建项目符号幻灯片

我们还可以使用 python-pptx 库的 Presentation 类创建项目符号幻灯片。

让我们看下面的例子来演示这一点:

示例

输出

Creating and Updating PowerPoint Presentation using Python

说明

在上面的代码片段中,我们从 pptx 库中导入了 Presentation 类。然后,我们创建了 Presentation 类的对象。然后,我们使用 slide_layouts[n] 属性创建了第一张幻灯片的布局,其中 n 是 PPT 文件中幻灯片的索引。然后,我们使用 add_slide() 方法创建了一个幻灯片对象以添加到 PPT 文件中。然后,我们使用 titleplaceholders[n] 属性向幻灯片添加标题和副标题。然后,我们使用 text 属性添加了标题和副标题的文本。然后,我们使用 text_frame 属性向幻灯片添加文本框。然后,我们使用 add_paragraph() 插入新段落到文本框中,并使用 level 属性指定级别。最后,我们保存了 PPT 文件。

并非所有形状都可以包含文本;但是,那些包含文本的形状总是至少有一个段落,即使该段落是空的,并且形状内没有可见文本。_BaseShape.has_text_frame 属性允许我们确定一个形状是否可以包含文本(所有形状都继承自 _BaseShape。)当 _BaseShape.has_text_frame 的值为 True 时,_BaseShape.text_frame.paragraphs[0] 返回第一个段落。我们可以使用 text_frame.paragraphs[0].text 属性设置第一个段落的文本。作为一种快捷方式,该库提供了一些可写属性,如 _BaseShape.text_TextFrame.text 来完成相同的任务。请注意,后两个调用会删除形状中的所有段落(除了第一个)然后再设置其文本。

在 PowerPoint 演示文稿中添加文本框

我们还可以使用 add_textbox() 方法在幻灯片中添加文本框。此方法接受多个名为 left, top, width, height 的参数。

让我们看下面的例子来演示这一点:

示例

输出

Creating and Updating PowerPoint Presentation using Python

说明

在上面的代码片段中,我们从库中导入了所需的内容并创建了一个幻灯片。然后,我们为 add_textbox() 方法指定了参数值并使用它创建了一个文本框。然后,我们创建了一个文本框。我们在文本框中添加了一些段落,并包含了一些独特的属性,例如使段落加粗和增大字体大小。最后,我们保存了演示文稿文件。

将图片添加到 PowerPoint 文件

我们可以使用 add_picture() 方法将图片插入到 PowerPoint 演示文稿文件中。

让我们看下面的例子来演示这一点:

示例

输出

Creating and Updating PowerPoint Presentation using Python

说明

在上面的代码片段中,我们从库中导入了所需的内容并定义了图片文件的路径。然后,我们实例化了 Presentation 类并创建了幻灯片的布局。在完成创建幻灯片对象后,我们定义了以英寸为单位的左边距和上边距。然后,我们使用 add_picture() 方法,该方法接受多个参数,包括图片文件路径、左边距和上边距的值。最后,我们保存了演示文稿。

将表格添加到 PowerPoint 文件

python-pptx 库的 Presentation 类还提供了名为 add_table() 的方法,允许我们将表格添加到 PowerPoint 文件中。

让我们看下面的代码片段来说明这一点:

示例

输出

Creating and Updating PowerPoint Presentation using Python

说明

在上面的代码片段中,我们从库中导入了所需的内容并实例化了 Presentation 类。然后,我们创建了幻灯片的布局和幻灯片对象。然后,我们向幻灯片添加了标题。然后,我们指定了行数和列数以及左边距、上边距、宽度和高度的测量值。我们将这些值用作 add_table() 方法的参数。然后,我们设置了列宽、标题和单元格的正文。最后,我们保存了演示文稿文件。

在 PowerPoint 文件中添加形状

我们可以使用 add_shape() 方法向 PowerPoint 演示文稿添加形状。

让我们看下面的例子来演示这一点:

示例

输出

Creating and Updating PowerPoint Presentation using Python

说明

在上面的代码片段中,我们从库中导入了所需的内容并实例化了 Presentation 类。然后,我们创建了幻灯片的布局和幻灯片对象。然后,我们向幻灯片添加了标题。然后,我们定义了左边距、上边距、宽度和高度的测量值,并使用了 add_shape() 方法。此方法定义了表示可用自动形状的常量(例如,MSO_SHAPE.PENTAGON, MSO_SHAPE.ROUNDED_RECT, MSO_SHAPE.CHEVRON 等)以及测量值作为参数。然后,我们向图像添加了一些文本。之后,我们更改了左边距和宽度值,并使用 for 循环创建了更多形状并将文本添加到其中。最后,我们保存了 PPT 文件。