Python-pptx模块实战:PPT自动化创建、元素操作与批量提取指南
本文详解Python-pptx模块在PPT自动化中的应用。从创建演示文稿、添加指定布局幻灯片,到操作文本框、表格等形状及占位符,提供完整代码示例。重点介绍如何批量提取PPT文本与表格数据,实现Word转PPT等繁琐操作的自动化,提升办公效率。
凭借出色的可视化表现与演示效果,PPT已成为职场人士必备的核心技能。PPT设计涵盖技巧与操作规范,已形成专门的知识体系与课程。
本文聚焦利用Python操作PPT文件的技巧。编程的核心优势在于处理速度,对于追求高水准设计的PPT,仍需“以人为本”。因此,该模块主要适用于PPT基本元素的提取与添加场景,特别适合处理大量内容转化(如Word转PPT),以替代繁琐的人工操作。尽管模块提供基础样式,但尚难完全满足日常办公对PPT美观度的高标准要求。
在该模块中,PPT被拆解为以下多个层级元素:
1. presentations,代表整个PPT文档对象。
2. slides,代表PPT文档中的每一页幻灯片。
3. shapes,表示页面中的形状容器。
4. placeholders,表示页面中的占位符元素。
上述分类对应的常用操作如下:
1. presentations
主要用于打开、创建及保存PPT文档,具体用法见代码示例。
>>> from pptx import Presentation
# 创建新的ppt文档
>>> prs = Presentation()
# 打开一个ppt文档
>>> prs = Presentation('input.pptx')
# 保存ppt文档
>>> prs.save('test.pptx')
2. slides
在创建新幻灯片时,需指定对应的布局。该模块内置了以下9种标准布局:
1. Title(标题幻灯片)
2. Title and Content(标题和内容)
3. Section Header(章节标题)
4. Two Content(双内容)
5. Comparison(对比)
6. Title Only(仅标题)
7. Blank(空白)
8. Content with Caption(带标题的内容)
9. Picture with Caption(带标题的图片)
可通过数字下标0到9访问上述布局,指定布局添加一页PPT的用法见代码示例。
>>> title_slide_layout = prs.slide_layouts[0] >>> slide = prs.slides.add_slide(title_slide_layout)
3. shapes
shapes表示容器,制作PPT时,文本框、表格、图片等基本元素均占据PPT的一个部分、矩形区域或其他自定义形状。shapes是所有基本元素的集合,通过以下方式可访问对应的shapes对象。
shapes = slide.shapes
对于shapes对象,我们可以获取和设置其各种属性,其中最常用的是text属性,用法见代码示例。
>>> shapes.text = 'hello world'
此外,还可通过add系列方法添加各种元素,添加文本框的具体用法见代码示例。
>>> from pptx.util import Inches, Pt >>> left = top = width = height = Inches(1) >>> txBox = slide.shapes.add_textbox(left, top, width, height) >>> tf = txBox.text_frame >>> tf.text = "first paragraph" >>> p = tf.add_paragraph() >>> p.text = "second paragraph"
添加表格的具体用法见代码示例。
>>> rows = cols = 2 >>> left = top = Inches(2.0) >>> width = Inches(6.0) >>> height = Inches(0.8) >>> table = shapes.add_table(rows, cols, left, top, width, height).table >>> table.columns[0].width = Inches(2.0) >>> table.columns[1].width = Inches(4.0) >>> # write column headings >>> table.cell(0, 0).text = 'Foo' >>> table.cell(0, 1).text = 'Bar'
4. placeholders
shapes表示所有基本元素的总和,而placeholders则表示页面上每一个具体的预设元素。因此,placeholders是shapes的子集,通过数字下标可访问对应的placeholder,用法见代码示例。
>>> slide.placeholders[1] <pptx.shapes.placeholder.SlidePlaceholder object at 0x03F73A90> >>> slide.placeholders[1].placeholder_format.idx 1 >>> slide.placeholders[1].name 'Subtitle 2'
placeholders是页面上已有的元素,获取对应的placeholders之后,可以通过insert系列方法来向其中新添元素。
了解上述层级结构,有助于我们对PPT进行读写操作。除了写操作之外,也可以通过读操作来批量提取PPT中的特定元素。以文字为例,提取方式见代码示例。
from pptx import Presentation
prs = Presentation(path_to_presentation)
text_runs = []
for slide in prs.slides:
for shape in slide.shapes:
if not shape.has_text_frame:
continue
for paragraph in shape.text_frame.paragraphs:
for run in paragraph.runs:
text_runs.append(run.text)
通过该模块,可以快速搭建PPT的基本框架,也可以批量提取PPT中的特定元素,例如提取文字转换成Word,或者提取表格转换成Excel文件。总而言之,该模块适合替代大量繁琐的人工复制粘贴操作。
到此这篇关于通过python-pptx模块操作PPT文件的方法的文章就介绍到这了,更多相关python-pptx模块操作PPT文件内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













