Python 自动化:python-pptx 批量生成幻灯片
需求分析
最近遇到了制作 PPT 报告的任务,前期收集整理后的表格数据长这样:
随后要基于上述数据制作 PPT 报告,几十页的幻灯片都是下图的格式:
Well, my coding fingers got quite itchy.👋
这种繁琐的手动制作幻灯片还是交给 Python 来自动完成吧!Python 中已有第三方库很好地支持 PowerPoint 👇
python-pptx 介绍
python-pptx
1是用于创建和更新 PowerPoint(.pptx)文件的 Python 库。
其用途大致如下:
- 典型的是从数据库内容生成自定义的可用于演示的工程状态报告,可通过单击 Web 应用程序中的链接下载该演示文稿。
- 用于对演示文稿库进行批量更新。
- 自动化制作对于人工操作繁琐的幻灯片。
由于开发团队的辛勤维护,目前已具有以下功能:
- 打开、读取、创建、保存演示文稿(.pptx文件)
- 添加幻灯片
- 填充文本占位符,例如创建项目符号幻灯片
- 添加图像并调整位置和尺寸
- 添加文本框并调整文本的字体、大小和粗体
- 添加表格
- 添加形状,如多边形、流程图形状等
- 添加图表,如柱形图、条形图、折线图和饼图等
- 访问和修改元素属性,例如标题、主题等
- ……(更多功能开发ing)
python-pptx 安装
python-pptx 托管在 PyPI 上,可以很方便地用 pip 安装:
pip install python-pptx
- 支持 Python 2.6, 2.7, 3.3, 3.4, 3.6(测试 3.7 能正常安装和简单使用,是否会有使用异常尚未知)本文代码运行环境为 Python 3.6。
- 依赖库会自动安装:lxml、Pillow、XlsxWriter
Hello World! 示例
成功安装后,运行以下示例代码,体验一下效果:
# 导包
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]
title.text = "Hello, World!"
subtitle.text = "python-pptx was here!"
# 保存
prs.save('test.pptx')