如果你有一堆 PPT 要做,他们的格式是一样的,只是填充的内容不一样,那你就可以使用 Python 来减轻你的负担。
PPT 分为内容和格式,用 Python 操作 PPT,就是利用 Python 对 PPT 的内容进行获取和填充,修改 PPT 的格式并不是 Python 的强项。因此,当你有一堆 PPT 要做的时候,先做好一个带格式的 PPT,然后用 Python 复制这个 PPT 文件,然后再对其进行读写。
python-pptx 模块的安装
pip install python-pptx
读取 PPT
假如文件「测试.pptx」的内容如下:
那么以下代码可以读取其内容:
from pptx import Presentation prs = Presentation("测试.pptx") for index, slide in enumerate(prs.slides): print(f"第 {index+1} 页") for shape in slide.shapes: if shape.has_text_frame: text_frame = shape.text_frame # print(text_frame.text) # 如果分段读就用下面的代码 for paragraph in text_frame.paragraphs: print(paragraph.text)
执行结果如下所示:
代码可以这样写:
from pptx import Presentation prs = Presentation() title_slide_layout = prs.slide_layouts[0] slide = prs.slides.add_slide(title_slide_layout) title = slide.shapes.title subtitle = slide.placeholders[1] tit<a>本文来源gao($daima.com搞@代@#码(网</a>le.text = "Hello, World!" subtitle.text = "python-pptx was here!" prs.save('test.pptx')
添加一张幻灯片
幻灯片都有板式,同样的,pptx 提供了 9 种版式让我们选择,分别是:
- Title (presentation title slide)
- Title and Content
- Section Header (sometimes called Segue)
- Two Content (side by side bullet textboxes)
- Comparison (same but additional title for each side by side content box)
- Title Only
- Blank
- Content with Caption
- Picture with Caption
分别对应 PPT 的如下版式,我已经用数据一一标出: