本文目录导读:

- 使用 Python + python-pptx
- 使用 VBA (Excel/Word 宏)
- 使用 Markdown 转 PPT (md-to-pptx)
- 使用模板快速生成
- 命令行工具
- 批量生成多语言版本
- 最佳实践建议
- 常用工具推荐
使用 Python + python-pptx
最灵活的方式,可以完全控制幻灯片内容:
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN
# 创建演示文稿
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
幻灯片
slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(slide_layout)= slide.shapes.titletext = "我的演示文稿"= slide.placeholders[1]text = "使用Python自动生成"
幻灯片
slide_layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(slide_layout)= slide.shapes.titletext = "内容要点"
# 添加文本框
content = slide.placeholders[1]
content.text = "• 第一点内容\n• 第二点内容\n• 第三点内容"
# 保存文件
prs.save('demo.pptx')
print("演示文稿已生成")
使用 VBA (Excel/Word 宏)
在 Office 中直接运行:
Sub CreatePowerPoint()
Dim pptApp As Object
Dim pptPres As Object
Dim pptSlide As Object
' 创建 PowerPoint 应用
Set pptApp = CreateObject("PowerPoint.Application")
pptApp.Visible = True
' 创建演示文稿
Set pptPres = pptApp.Presentations.Add
' 添加幻灯片
Set pptSlide = pptPres.Slides.Add(1, 1) ' 标题幻灯片
pptSlide.Shapes(1).TextFrame.TextRange.Text = "自动生成演示"
pptSlide.Shapes(2).TextFrame.TextRange.Text = "通过VBA宏"
' 添加第二张幻灯片
Set pptSlide = pptPres.Slides.Add(2, 2)
pptSlide.Shapes(1).TextFrame.TextRange.Text = "主要内容"
pptSlide.Shapes(2).TextFrame.TextRange.Text = "• 项目一" & vbCrLf & "• 项目二" & vbCrLf & "• 项目三"
MsgBox "演示文稿已创建!"
End Sub
使用 Markdown 转 PPT (md-to-pptx)
先写 Markdown 文件,再转换:
# 季度总结报告 ## 2024年第一季度 --- ## 核心指标 - 收入增长:25% - 用户增长:40% - 满意度:4.8/5.0 --- ## 重点项目 ### 产品升级 - 新功能上线 - UI 优化 - 性能提升 ### 市场拓展 - 区域扩张 - 合作伙伴 - 品牌建设
转换脚本:
# 安装工具 pip install md-to-pptx # 转换 md-to-pptx report.md output.pptx
使用模板快速生成
import json
from pptx import Presentation
# 定义数据
data = {: "项目进度报告",
"subtitle": "2024年3月",
"slides": [
{
"title": "本月里程碑",
"content": "• 完成A模块开发\n• 修复15个Bug\n• 通过性能测试"
},
{
"title": "下一步计划",
"content": "• 系统测试\n• 用户验收\n• 部署上线"
}
]
}
# 使用现有模板
prs = Presentation('template.pptx')
# 填充数据
for i, slide_data in enumerate(data['slides']):
slide = prs.slides[i]
slide.shapes.title.text = slide_data['title']
slide.placeholders[1].text = slide_data['content']
prs.save('report.pptx')
命令行工具
使用 pandoc
# 安装 pandoc # 从 Markdown 生成 PPT pandoc presentation.md -t pptx -o output.pptx
使用 reveal.js (HTML 版)
# 安装 npm install -g reveal-md # 从 Markdown 生成 HTML 演示 reveal-md slides.md --static output
批量生成多语言版本
import os
from pptx import Presentation
languages = {
'中文': {'title': '产品介绍', 'content': '产品特点...'},
'English': {'title': 'Product Introduction', 'content': 'Product features...'},
'日本語': {'title': '製品紹介', 'content': '製品の特徴...'}
}
for lang, content in languages.items():
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[0])
slide.shapes.title.text = content['title']
slide.placeholders[1].text = content['content']
prs.save(f'{lang}_presentation.pptx')
最佳实践建议
- 数据驱动:从 Excel/CSV/数据库读取数据
- 模板复用:设计美观的模板,脚本只填充内容
- 批量处理:一次生成多份类似报告
- 版本控制:使用 Git 管理脚本和模板
- 自动化:配合 CI/CD 定时生成报告
常用工具推荐
| 工具 | 适用场景 | 复杂度 |
|---|---|---|
| python-pptx | 复杂定制 | 高 |
| VBA | Office 集成 | 中 |
| pandoc | Markdown 转换 | 低 |
| reveal-md | 网页演示 | 低 |
| Google Slides API | 在线协作 | 中 |
选择哪种方法取决于你的具体需求、技术栈和自动化程度要求。