python-pptx 库是一个强大的工具,允许我们通过编程方式创建和编辑 PowerPoint (.pptx) 文件。它让我们能够完全掌控幻灯片、形状、文本框、段落和图片等元素的操作,包括文本格式(字体大小、样式、加粗、斜体)、幻灯片布局等。这使得它成为自动化 PowerPoint 创建或修改的理想选择。 主要特性包括:
- 创建和编辑幻灯片: 添加、删除和自定义幻灯片。
- 形状和文本: 添加各种形状(矩形、线条、圆形等)以及段落、标题和项目符号等文本元素。
- 文本格式化: 自定义字体大小、颜色、加粗、斜体等。
- 图片: 在幻灯片中插入图片。
- 表格: 创建具有自定义尺寸和单元格样式的表格并设置格式。
- 图表: 添加图表或图形(有一些限制)。
限制: 该库仅适用于 .pptx 文件,这意味着它不适用于使用 .ppt 格式的 PowerPoint 2003 或更早版本。.pptx 是随 PowerPoint 2007 引入的现代基于 XML 的格式。
安装: 为了开始使用,我们需要安装 python-pptx 库。我们可以通过 Python 包管理器 pip 轻松安装它。打开命令提示符(或终端)并运行以下命令:
> pip install python-pptx
基本用法示例
示例 1: 此示例演示了如何创建一个包含标题幻灯片的简单演示文稿。
Python
CODEBLOCK_31d746f5
输出
!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20250428160621327070/presentationwithtitleslide.png">presentationwithtitleslidePresentation with a title slide
解释:
- p = Presentation() 创建了一个新的 PowerPoint 演示文稿。
- p.slides.addslide(p.slidelayouts[0]) 添加了一张标题幻灯片。
- s.shapes.title.text = "Created By python-pptx" 设置了标题文本。
- s.placeholders[1].text = "This is an example of a title and subtitle slide." 设置了副标题文本。
示例 2: 我们还可以向幻灯片添加自定义文本框。
Python
CODEBLOCK_aec037e9
输出
!OutputStyled Textbox with Multiple Paragraphs
解释:
- s.shapes.add_textbox(Inches(1), Inches(1), Inches(3), Inches(3)) 在指定位置和大小添加了一个文本框。
- txtframe = txtbox.textframe 访问文本框架,并通过 txtframe.text = "This is a text box." 设置初始文本。
- 添加一个段落 p = txtframe.addparagraph() 并通过 p.font.bold, p.font.italic = True, True 应用粗体和斜体。
- 添加另一个段落,并使用 p.font.size = Pt(40). 将字体大小设置为 40 磅。
示例 3: 我们可以从 PowerPoint 演示文稿中提取文本内容,并将其保存到文本文件中。
Python
CODEBLOCK_9f79cd5d
输出
Text extracted.
!OutputPowerPoint content extracted to text
解释:
- 演示文稿是使用 Presentation("output.pptx") 从 output.pptx 加载的。
- 它遍历演示文稿中的每个幻灯片和形状,检查具有文本框架的形状。
- 对于形状文本框架中的每个段落,脚本会连接文本并将它们写入 output.txt 文件。
- 提取的文本保存在 output.txt 中,并打印一条确认消息。
示例 4: 在这个示例中,我们将创建一个新的 PowerPoint 演示文稿,添加一个空白幻灯片,并在指定位置插入一张图片。
Python
“
from pptx import Presentation
from pptx.util import Inches
p = Presentation()
s = p.slides.addslide(p.slidelayouts[6])
s.shapes.add_picture