用 Python 自动生成 PPT 并发送到聊天窗口
在日常工作中,我们经常需要制作 PPT。如果能通过代码自动生成 PPT,不仅效率翻倍,还能实现批量化和模板化。今天就教大家如何用 Python 自动生成 PPT 并发送到聊天窗口。
一、为什么选择 Python 生成 PPT
Python 有丰富的第三方库支持办公自动化,其中最强大的就是 python-pptx 库。它可以:
- • 精确控制每一页的内容和布局
- • 自动生成图表、表格
- • 批量制作模板化 PPT
- • 与其他办公系统无缝集成
相比手动制作,代码生成的优势在于:
- 1. 可重复:一次代码,随时生成
- 2. 可定制:参数化设置,想改就改
- 3. 可扩展:可以对接 AI 自动生成内容
二、环境准备
首先需要安装 python-pptx 库:
pip install python-pptx如果你使用的是虚拟环境(推荐),可以这样操作:
python3 -m venv venv
source venv/bin/activate
pip install python-pptx三、代码实战
下面是一个完整的 5 页 PPT 生成示例:
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.enum.text import PP_ALIGN
from pptx.dml.color import RGBColor
prs = Presentation()
prs.slide_width = Inches(10)
prs.slide_height = Inches(7.5)
def add_title_slide(prs, title, subtitle=""):
slide_layout = prs.slide_layouts[6] # blank
slide = prs.slides.add_slide(slide_layout)
# 标题
title_box = slide.shapes.add_textbox(Inches(1), Inches(2.5), Inches(8), Inches(1.5))
tf = title_box.text_frame
p = tf.paragraphs[0]
p.text = title
p.font.size = Pt(44)
p.font.bold = True
p.font.color.rgb = RGBColor(0, 102, 204)
p.alignment = PP_ALIGN.CENTER
# 副标题
if subtitle:
sub_box = slide.shapes.add_textbox(Inches(1), Inches(4.2), Inches(8), Inches(1))
tf = sub_box.text_frame
p = tf.paragraphs[0]
p.text = subtitle
p.font.size = Pt(24)
p.alignment = PP_ALIGN.CENTER
return slide
def add_content_slide(prs, title, bullets):
slide_layout = prs.slide_layouts[6]
slide = prs.slides.add_slide(slide_layout)
# 标题
title_box = slide.shapes.add_textbox(Inches(0.5), Inches(0.5), Inches(9), Inches(0.8))
tf = title_box.text_frame
p = tf.paragraphs[0]
p.text = title
p.font.size = Pt(32)
p.font.bold = True
p.font.color.rgb = RGBColor(0, 102, 204)
# 内容
content_box = slide.shapes.add_textbox(Inches(0.8), Inches(1.5), Inches(8.5), Inches(5))
tf = content_box.text_frame
tf.word_wrap = True
for i, bullet in enumerate(bullets):
if i == 0:
p = tf.paragraphs[0]
else:
p = tf.add_paragraph()
p.text = "• " + bullet
p.font.size = Pt(22)
p.space_after = Pt(12)
return slide
# 第1页:封面
add_title_slide(prs, "OpenClaw", "你的个人 AI 操作系统\n开源 · 自托管 · 可扩展")
# 第2页:内容页
add_content_slide(prs, "什么是 OpenClaw", [
"在自有服务器上运行的 AI 助手",
"与 ChatGPT 对比:",
" • 交互模式:你问我答 → 自主执行任务",
" • 运行环境:网页/App → 自托管服务器"
])
# 保存文件
prs.save("output.pptx")
print("PPT 创建成功!")四、关键技巧
1. 页面尺寸设置
prs.slide_width = Inches(10) # 宽度 10 英寸
prs.slide_height = Inches(7.5) # 高度 7.5 英寸(16:9)2. 字体和颜色
p.font.size = Pt(32) # 字体大小
p.font.bold = True # 加粗
p.font.color.rgb = RGBColor(0, 102, 204) # 蓝色3. 文本框定位
slide.shapes.add_textbox(left, top, width, height)
# left: 左边距
# top: 上边距
# width: 宽度
# height: 高度所有单位都是 Inches(英寸)。
五、发送到通信工具
生成 PPT 后,如何发送到聊天窗口?这里有两种方式:
方式一:飞书/钉钉机器人
通过消息机器人 API,可以直接将文件发送到群聊或私聊。
方式二:文件托管服务
如果需要公网访问,可以上传到文件托管服务,获取下载链接后发送。
六、进阶应用
学会了基础用法后,可以尝试这些进阶功能:
- 1. 批量生成:循环生成多页 PPT
- 2. 模板套用:读取现有 PPT 模板,修改内容
- 3. AI 结合:让 AI 生成 PPT 内容,代码负责排版
- 4. 数据驱动:从 Excel 读取数据,批量生成报表
总结
用 Python 生成 PPT 的核心就是 python-pptx 库。掌握以下几点就能上手:
- • 安装:
pip install python-pptx - • 创建空白 PPT:用
slide_layouts[6] - • 添加文本框:用
shapes.add_textbox() - • 保存:用
prs.save()
学会了这招,办公效率提升不止一点点!
相关文章
- • Python 办公自动化实战
- • 如何用 Python 操作 Excel
- • Python 数据可视化指南
如果你对这个话题感兴趣,欢迎关注我,持续分享办公自动化干货!
作者:小飞飞
夜雨聆风