PPTX文档自动化技能 document-pptx

这个技能用于程序化创建和编辑PowerPoint (.pptx) 演示文稿,包括生成幻灯片、应用模板、添加图表和表格、管理演讲者笔记以及提取幻灯片内容。适用于自动化报告、演示文稿生成等工作流,支持Python和Node.js环境。关键词:PPTX自动化、演示文稿生成、python-pptx、PptxGenJS、PPTX-Automizer、幻灯片自动化。

后端开发 0 次安装 0 次浏览 更新于 3/7/2026

name: document-pptx description: 创建、编辑和分析PowerPoint (.pptx) 演示文稿:生成幻灯片集(如商业计划书/季度业务回顾/培训材料),应用模板/母版,添加图表/图片/表格,管理演讲者笔记,以及提取幻灯片内容。当用户提到PowerPoint/PPTX、幻灯片、商业计划书、QBR/董事会演示文稿或演示文稿自动化时使用。支持python-pptx、PptxGenJS和PPTX-Automizer。

文档PPTX技能 - 快速参考

此技能使您能够以编程方式创建和编辑PowerPoint演示文稿。当用户需要生成商业计划书、报告、培训材料或自动化演示文稿工作流时,Claude应应用这些模式。

现代最佳实践(2026年1月)

  • 一幻灯片 = 一要点;围绕决策或听众目标设计幻灯片集。
  • 引用数字(定义 + 时间范围 + 来源)并为图表保持单一真实来源。
  • 可访问性:幻灯片标题、阅读顺序、对比度和有意义的替代文本;遵循您组织的标准(通常是WCAG 2.2 AA / EN 301 549)。
  • 版本化幻灯片集并强制执行审核循环(避免"final_final_v7.pptx")。

快速参考

任务 工具/库 语言 使用场景
创建PPTX python-pptx Python 演示文稿、幻灯片集
创建PPTX PptxGenJS Node.js 服务器端生成
模板驱动 PPTX-Automizer Node.js 企业品牌、模板注入
模板 python-pptx Python 母版幻灯片、主题
图表 python-pptx Python 数据可视化
提取内容 python-pptx Python 解析现有幻灯片集

选择指南

  • 当您有品牌的.pptx模板并需要“将数据注入幻灯片”时,首选PPTX-Automizer。
  • 在Python密集型流水线(报告、笔记本、ETL)中,首选python-pptx。
  • 在Node.js流水线(服务器端生成、Web应用)中,首选PptxGenJS。

核心操作

创建演示文稿(Python)

from pptx import Presentation

prs = Presentation()

# 标题幻灯片
title_layout = prs.slide_layouts[0]  # 标题幻灯片布局
slide = prs.slides.add_slide(title_layout)
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "2025年第四季度业务回顾"
subtitle.text = "由产品团队呈现"

# 带项目符号的内容幻灯片
bullet_layout = prs.slide_layouts[1]  # 标题和内容
slide = prs.slides.add_slide(bullet_layout)
slide.shapes.title.text = "关键亮点"
body = slide.placeholders[1]
tf = body.text_frame
tf.text = "收入同比增长25%"

p = tf.add_paragraph()
p.text = "客户基础扩大到10,000+"
p.level = 0

p = tf.add_paragraph()
p.text = "新企业层级推出"
p.level = 1  # 缩进项目符号

# 添加演讲者笔记
notes_slide = slide.notes_slide
notes_slide.notes_text_frame.text = "在这里强调企业增长故事。"

prs.save('presentation.pptx')

创建演示文稿(Node.js)

import pptxgen from 'pptxgenjs';

async function main() {
  const pptx = new pptxgen();
  pptx.author = '产品团队';
  pptx.title = '第四季度业务回顾';

  // 标题幻灯片
  let slide = pptx.addSlide();
  slide.addText('2025年第四季度业务回顾', {
    x: 1, y: 2, w: '80%',
    fontSize: 36, bold: true, color: '363636',
    align: 'center',
  });
  slide.addText('由产品团队呈现', {
    x: 1, y: 3.5, w: '80%',
    fontSize: 18, color: '666666',
    align: 'center',
  });

  // 带项目符号的内容幻灯片
  slide = pptx.addSlide();
  slide.addText('关键亮点', {
    x: 0.5, y: 0.5, w: '90%',
    fontSize: 28, bold: true,
  });
  slide.addText([
    { text: '收入同比增长25%', options: { bullet: true } },
    { text: '客户基础扩大到10,000+', options: { bullet: true } },
    { text: '新企业层级推出', options: { bullet: true, indentLevel: 1 } },
  ], { x: 0.5, y: 1.5, w: '90%', fontSize: 18 });

  // 添加图表
  slide = pptx.addSlide();
  slide.addChart(pptx.ChartType.bar, [
    { name: '销售', labels: ['Q1', 'Q2', 'Q3', 'Q4'], values: [100, 150, 180, 225] },
  ], { x: 1, y: 1.5, w: 8, h: 4 });

  await pptx.writeFile({ fileName: 'presentation.pptx' });
}

main();

添加图表(Python)

from pptx import Presentation
from pptx.util import Inches
from pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPE

prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[6])  # 空白

# 图表数据
chart_data = CategoryChartData()
chart_data.categories = ['Q1', 'Q2', 'Q3', 'Q4']
chart_data.add_series('收入', (100, 150, 180, 225))
chart_data.add_series('支出', (80, 90, 100, 110))

# 添加图表
x, y, cx, cy = Inches(1), Inches(1.5), Inches(8), Inches(5)
chart = slide.shapes.add_chart(
    XL_CHART_TYPE.COLUMN_CLUSTERED,
    x, y, cx, cy,
    chart_data
).chart

chart.has_legend = True
chart.legend.include_in_layout = False

prs.save('charts.pptx')

添加图片和表格

from pptx import Presentation
from pptx.util import Inches

prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[6])  # 空白

# 添加图片
slide.shapes.add_picture('logo.png', Inches(0.5), Inches(0.5), width=Inches(2))

# 添加表格
rows, cols = 4, 3
table = slide.shapes.add_table(rows, cols, Inches(1), Inches(2), Inches(8), Inches(3)).table

# 设置列标题
table.cell(0, 0).text = '产品'
table.cell(0, 1).text = '销售'
table.cell(0, 2).text = '增长'

# 填充数据
data = [
    ('部件A', '$1.2M', '+25%'),
    ('部件B', '$800K', '+15%'),
    ('部件C', '$500K', '+40%'),
]
for row_idx, (product, sales, growth) in enumerate(data, 1):
    table.cell(row_idx, 0).text = product
    table.cell(row_idx, 1).text = sales
    table.cell(row_idx, 2).text = growth

prs.save('images_and_tables.pptx')

提取内容

from pptx import Presentation

prs = Presentation('existing.pptx')

for slide_num, slide in enumerate(prs.slides, 1):
    print(f"
--- 幻灯片 {slide_num} ---")
    for shape in slide.shapes:
        if shape.has_text_frame:
            for paragraph in shape.text_frame.paragraphs:
                print(paragraph.text)
        if shape.has_table:
            table = shape.table
            for row in table.rows:
                row_text = [cell.text for cell in row.cells]
                print(row_text)

幻灯片布局参考

布局索引 名称 使用案例
0 标题幻灯片 开场、部分分隔
1 标题和内容 标准项目符号幻灯片
2 部分标题 部分过渡
3 两内容 并排比较
4 比较 优缺点、前后对比
5 仅标题 自定义内容放置
6 空白 完全创意控制
7 带标题的内容 图片 + 描述

演示文稿结构模式

商业计划书(10幻灯片)

商业计划书结构
1. 标题(公司、标语)
2. 问题(痛点)
3. 解决方案(您的产品)
4. 市场规模(TAM/SAM/SOM)
5. 商业模式(如何赚钱)
6. 进展(指标、增长)
7. 团队(创始人、顾问)
8. 竞争(格局)
9. 财务(预测)
10. 请求(融资、下一步)

季度回顾(8幻灯片)

季度回顾结构
1. 标题 + 议程
2. 执行摘要(KPI仪表板)
3. 收入与增长
4. 产品更新
5. 客户亮点
6. 挑战与学习
7. 下季度目标
8. 问答

做 / 避免(2025年12月)

  • 使用幻灯片叙事计划(标题 + 一句要点 + 支持视觉)。
  • 对于决策演示文稿,将执行摘要放在前面。
  • 保持演讲者笔记与幻灯片要点一致。

避免

  • 密集的幻灯片包含多个信息。
  • 未引用的数字或没有定义的图表。
  • 像素化的截图和不可读的表格。

良好实践的样子

  • 叙事:每张幻灯片有一句要点并支持单一决策或洞察。
  • 结构:开场执行摘要 + 清晰弧线(问题 -> 洞察 -> 推荐 -> 下一步)。
  • 数据卫生:图表显示单位、时间范围、来源和一致轴。
  • 设计:一致的排版、间距和对比度;没有“文本墙”幻灯片。
  • 可访问性:设置阅读顺序和在有需要时有意义的替代文本。

可选:AI / 自动化

仅在明确请求且符合政策时使用。

  • 起草幻灯片标题和演讲者笔记;人类验证准确性和语气。
  • 从数据生成图表代码;人类验证标签、单位和来源。

导航

资源

模板

相关技能