fanzhuo

Create PowerPoint

辦公效率v1.0.0
作者:fanzhuo更新於 2026-05-11create-pptx@clawhub_scottliu007/create-pptx
PPT 生成

據 AlphaMoat 統計,截至 2026-09,Create PowerPoint 累計下載 2,574 次、獲 0 個星標,在全部 5,078 個 AI 技能中排名第 4,038 位,在「辦公效率」分類(435 個)中排名第 302 位。

累計安裝
123
累計下載
2574
星標
-
全站排名
#4,038
全站前 80% · 「辦公效率」前 70%
平台累計安裝累計下載星標評論
ClawHub ↗692574--
SkillHub ↗1232511-—

各平台的計數口徑不同,統計時間不一致。

這個技能是做什麼的

主文涵蓋幻燈片佈局、時間線、圖表、形狀、文字格式、切換效果和模板資源,並建議在 WPS 場景用多頁漸進呈現代替點選動畫。模板素材可能要求保留署名頁;生成前還應確認簡報語言,並在需要可復現結果時固定依賴版本。

資料釋出於 2026-10-29

可以用來做什麼

  • 規劃簡報的頁面結構和佈局
  • 使用 python-pptx 繪製時間線、圖表或示意圖
  • 檢查 WPS 相容性和模板署名要求

什麼時候用

  • 使用者要求建立或修改 PPTX,並已提供內容、語言和目標用途時

示例提示詞

以下是根據技能文件生成的示例,不代表實際執行結果。

不生成檔案,先為一個業務簡報規劃頁面結構和圖表型別。
使用模板前列出需要確認的版權署名、語言和依賴版本事項。

月度資料趨勢

累計下載2574
319153027412026-03 · 累計下載 4862026-05 · 累計下載 15102026-06 · 累計下載 16922026-07 · 累計下載 20982026-08 · 累計下載 23792026-09 · 累計下載 257426-0326-09
星標-
0112026-03 · 星標 -2026-05 · 星標 -2026-06 · 星標 -2026-07 · 星標 -2026-08 · 星標 -2026-09 · 星標 -26-0326-09

2026-09 起統計方法調整:同名技能按作者分別統計,並覆蓋全部技能。圖中虛線為調整前的月份,與之後的資料不直接比較,也不計算跨越調整的增長。

月份累計下載環比星標
2026-092574—-
2026-082379+13.4%-
2026-072098+24.0%-
2026-061692+12.1%-
2026-051510—-
2026-03486—-

SKILL.md 原文

以下是作者釋出的原始檔案,按純文字顯示,本站未做修改或稽核;其中的連結不可點選,命令請核實後再執行。抓取於 2026-10-23。

5.1 KB · ClawHub v1.0.0
---
name: create-pptx
description: >
  Create PowerPoint presentations (PPTX) using Python and python-pptx. Handles
  timelines, charts, diagrams, slide layouts, custom colors, shapes, connectors,
  text formatting, and slide transitions. Knows WPS compatibility pitfalls.
  Use when the user asks to: generate a PPT/PPTX file, create a presentation,
  make a slide deck, draw a timeline, visualize data as slides, or export
  something to PowerPoint. Also use when the user says "做成 PPT"、"生成幻灯片"、
  "做个演示文稿"、"做个 pptx".
展開全部(共 142 行)
---

# Create PowerPoint (python-pptx)

## Setup

```bash
pip install python-pptx   # or: uv pip install python-pptx
```

Output scripts to a logical location (e.g., `前端开发/demo/` or project folder),
then run with `python3 <script.py>` and open the result.

## Core helpers

Read and import `scripts/pptx_helpers.py` for ready-made drawing primitives:
background, horizontal/vertical lines, textboxes, ovals, diagonal connectors,
and fade transitions. Copy or `import` as needed.

Key units: **EMU** (English Metric Units). 1 pt = 12700 EMU, 1 cm ≈ 360000 EMU.
Standard 16:9 slide = 12192000 × 6858000 EMU.

## Workflow

1. **Understand the content** — milestones, categories, colors, # slides
2. **Plan layout** — compute X/Y positions in EMU up front; avoid magic numbers
3. **Build shapes** — use helpers or `slide.shapes.add_shape/add_textbox`
4. **Add transitions** — always call `add_fade_transition(slide)` from helpers
5. **Run and open** — `python3 script.py && open output.pptx`

### Multi-slide instead of click animations (WPS-safe default)

WPS does not reliably support click-triggered PowerPoint animations.
**Always use multiple slides** to reveal content progressively:

```
Slide 1 → skeleton / structure only
Slide 2 → skeleton + first data layer
Slide 3 → skeleton + all data layers
```

Add a fade transition (`add_fade_transition`) to each slide for smooth switching.

If the user explicitly asks for animations AND they are using Microsoft PowerPoint
(not WPS), you may attempt XML-based animations — but read `references/wps-compat.md`
first for the XML structure and known pitfalls.

## Common patterns

### Colors & theme

Define all colors as `RGBColor` constants at the top. Dark backgrounds look
premium — use near-black (`0x06, 0x0D, 0x1E`) with bright accents.

### Timeline layout

```python
TL_L, TL_R = 850000, 11950000        # left/right margins (EMU)
TL_W  = TL_R - TL_L
M_STEP = TL_W // 11                   # 12 months → 11 intervals

def month_x(m):                       # 1-based month → EMU x-position
    return TL_L + M_STEP * (m - 1)
```

### Collision resolution

When multiple cards share the same or nearby X position, spread them:

```python
def resolve_collisions(events, card_w, gap):
    events.sort(key=lambda e: e['cx'])
    need = card_w + gap
    for _ in range(120):
        moved = False
        for i in range(len(events) - 1):
            a, b = events[i], events[i+1]
            if b['cx'] - a['cx'] < need:
                push = (need - (b['cx'] - a['cx'])) / 2
                a['cx'] -= push; b['cx'] += push; moved = True
        if not moved:
            break
```

### Shape IDs for animation

`python-pptx` assigns shape IDs automatically. To retrieve them after creation:

```python
shp = slide.shapes.add_shape(...)
shape_id = shp.shape_id        # use this in animation XML
```

For connectors added via raw XML, read back the max existing ID first:

```python
def _max_existing_id(slide):
    return max((int(el.get('id')) for el in slide.element.iter()
                if el.get('id') and el.get('id').isdigit()), default=1)
```

## Template assets

Ready-to-use `.pptx` base files in `assets/`. Use them as the starting
`Presentation()` object to inherit their design/theme:

```python
from pptx import Presentation
prs = Presentation('/Users/scott/.cursor/skills/create-pptx/assets/business-dark.pptx')
```

| File | Style | Source |
|------|-------|--------|
| `assets/business-dark.pptx` | 深色商务 · Pitch Deck 风格 · 60 slides | Slidesgo "Product Vision Pitch Deck" (Attribution required) |
| `assets/education.pptx` | 明亮教育 · 笔记本课程风格 · 多 slides | Slidesgo "Notebook Lesson XL" (Attribution required) |

> **Attribution**: Free Slidesgo templates require keeping the attribution slide.
> When using these files, do NOT delete the last "Credits" slide.

## Reference files

Read the relevant file based on the task:

- **`references/pptx-patterns.md`** — EMU 单位速查、预设形状 ID、连接器 XML、
  过渡 XML、多段落文字框、典型脚本结构
- **`references/charts.md`** — python-pptx 原生图表 API:柱状、折线、饼图、散点、
  多系列、样式设置(当用户需要数据图表时读此文件)
- **`references/standard-slides.md`** — 标准商务幻灯片函数库:标题页、目录页、
  要点页、图文并排、数据页、章节分隔页、结尾页(当用户需要完整 PPT 结构时读此文件)
- **`references/wps-compat.md`** — WPS 动画兼容性踩坑记录(当用户提到 WPS 或
  动画效果异常时读此文件)

「辦公效率」分類下的熱門技能

資料月份:2026-09 · 下載/星標/安裝數聚合自公開技能註冊庫(ClawHub、SkillHub),按月更新。口徑說明見資料方法。