ppt-report-sunbin

SKILL效率
效率 未标注权限 许可证不明确
安装这个技能

用 python-pptx 手写脚本生成正式汇报 PPT,内置四种风格:红色/蓝色/绿色「简洁商务风」 (白底克制留白,左文右图 + 自绘对比图 + 指标总表)与深色「科技风」(卡片式 KPI 版式)。 当用户要求把 Word 工作汇报/季度总结/数据分析做成红色、蓝色、绿色或深色科技感 PPT、 或需要可复用的正式汇报 PPT 生成能力时使用。产出:可直接编辑的 PPTX + 可复现的生成脚本;数据 PPT 优先复用配套 Excel 分析文件中的原生图表(导出 PNG 嵌入保持视觉一致),Excel 无对应图表时才用形状拼接。开始制作前会先让用户选择风格(红色/蓝色/绿色/深色科技)。

一句话选型结论

按资料字段整理

ppt-report-sunbin是效率类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类效率 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_e49a740a/ppt-report-sunbin
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

效率
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_e49a740a仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791715475
正文体量37.6 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
整理待办与日程

把零散任务收进清单,排出优先级。

批量处理重复任务

把固定动作做成模板,重复执行。

把流程写成清单

把口头流程整理成可复用的步骤。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在效率场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
ppt-report-sunbin当前 未标注权限 未标注 未标注 未标注 有
Nano PDF 文档 联网访问 ClawHub 市场 424.9 万 OpenClaw 有
自动更新程序 浏览器控制 ClawHub 市场 296.4 万 OpenClaw 有
Gemini 助手 联网访问 ClawHub 市场 254.7 万 OpenClaw 有
word DOCX 文档 联网访问 ClawHub 市场 239.6 万 OpenClaw 有
Excel XLSX 前端 联网访问 ClawHub 市场 227.0 万 OpenClaw 有

SKILL.md 全文

37.6 KB
模型实际读到的说明书原文,来自技能仓库

ppt-report-sunbin — 正式汇报 PPT 生成(六种版式 · 五个跨风格模板)

> 1.1.0 重大升级:把原两套独立库(商务 + 深色)拆成 风格 × 配色 的二维架构:
> - 版式 style = 商务 / 深色科技 / 杂志 / 瑞士(四套各自独立的骨架,零冲突)
> - 配色 color = 红 / 蓝 / 绿(仅商务、杂志、瑞士支持;深色科技自带青/蓝/金)
> 加 5 个跨风格通用页面模板(时间轴 / 四象限 / 漏斗 / 流程箭头 / 金句页)——一份内容脚本换 use_style 即可得到四套视觉。

0. 先定逻辑(每次制作的第一步,职场 PPT 的灵魂)

职场 PPT 的差距主要在逻辑,不在配色。动手选版式之前,先完成「逻辑起草」(规则全文见 references/logic_blueprint.md):

  1. 三问定逻辑:讲给谁(受众)· 想让他记住/同意/做什么(目的)· 全文最想让他带走的一句话(核心结论)。
  2. 选骨架:默认 S1 结论—依据—行动;改进提案用 S2 现状—问题—方案—下一步;选型/对比用 S3;多板块并列才用 S4。
  3. 出「逻辑大纲」:每页写四要素 —— 判断句标题 / 结论(一句话)/ 收获(听众带走什么)/ 关系(对比·因果·主次·顺序·总分·并列),按 §5 大纲格式。
  4. 用户确认:把大纲贴给用户一次确认(不必逐页问);用户已给明确分页大纲时,只做「标题改判断句 + 补每页结论」两件事。
  5. 自检:python <skill目录>/scripts/logic_check.py <大纲.md> 通过后再进入下面的版式选择与排版。

铁律(逻辑层)
- 标题是判断句,不是栏目名:✗「费用分析」✓「人力成本占期间费用近六成,是管控第一抓手」。
- 每页必须有一句话结论;图表/KPI 页必须带读图结论与来源行,不许裸放图表。
- 收尾页给行动/建议,不以罗列结束。

风格选择(每次开始制作前先问)

用户没有在需求里指定风格时,先贴出下方菜单让用户选(回复编号即可),等用户选定后再动手;
用户已直接说风格(如「红色」「杂志」「瑞士」)则跳过询问。

PPT 用哪种版式?(回复编号即可,如 1)
1. 红色商务风 —— 白底 + 主红 #C0392B|正式职场汇报(推荐/默认)
2. 蓝色商务风 —— 白底 + 主蓝 #1F3864|专业、数据驱动汇报
3. 绿色商务风 —— 白底 + 主绿 #006C57|增长、金融、国企汇报
4. 深色科技风 —— 深空蓝黑底 #0B1220 + 青/金|科技感、炫酷
5. 杂志大标题风 —— 44-56pt 大标题 + 大留白 + 细线分隔|述职/竞聘/年终总结
6. 瑞士极简风 —— 零装饰纯网格 + 主色短线|技术评审 / 政务国企 / 信息量大

规则:
- 编号 → 风格:1=red、2=blue、3=green、4=dark_tech、5=magazine、6=swiss;对应代码库见下方「风格路由表」。
- 编号 1/2/3(红/蓝/绿)共用 business 版式骨架,仅换色板。
- 编号 5/6(杂志/瑞士)支持红/蓝/绿三色板,在 use_style 第二个参数指定。
- 编号 4(深色)无独立配色,色板已内置在深色库。
- 用户答「随便/你定」:默认红色商务风;拿不准先问一句。
- 同一任务沿用首次选择;用户明确要求换风格时才重问。
- 风格选项会随技能更新增加:新增风格时,同步更新本菜单、路由表与代码库;若用户提到列表外的风格,以代码库实际支持为准。

风格路由表

用户说法 版式参数 配色参数 风格模块 主色
「红色」「商务红」汇报 business red styles/business.py #C0392B
「蓝色」「藏蓝」/数据汇报 business blue styles/business.py #1F3864
「绿色」「深绿」/增长·金融·国企 business green styles/business.py #006C57
「深色」「科技感」「炫酷」 dark_tech 无(内置) styles/dark_tech.py #0B1220 底 + 青/蓝/金
「杂志」「大标题」「气场足」 magazine red / blue / green styles/magazine.py 同色系大字号
「瑞士」「极简」「克制严肃」 swiss red / blue / green / gray styles/swiss.py 主色只作短线点缀

用户未指定:见上方菜单;答「随便/你定」默认红色商务风(business + red)。

统一入口:scripts/ppt_kit.py(推荐写法)

import ppt_kit as kit

P = kit.use_style("business", "red")   # ← 换版式只改这一行
prs = kit.new_presentation()
s = kit.new_slide(prs)
kit.title_bar(s, "01", "工作概述", "OVERVIEW")
kit.add_text(s, kit.P["MARGIN"], 1.9, kit.P["CONTENT_W"], 1.0,
             [[("本季度围绕三条主线推进……", 14, False, P["GRAY"])]], font=P["FONT"])
kit.save(prs, "汇报.pptx")
  • 旧脚本(直接 from business_ppt_kit import * 或 from ppt_dark_kit import *)继续可用,没改一行就兼容(两套 kit 已降级为兼容壳)。
  • 新脚本一律走 ppt_kit,一个入口走遍所有版式。
  • kit.use_style(style, color) 返回色板 dict(MAIN/ACCENT/INK/GRAY/MARGIN/CONTENT_W/FONT…),供内容脚本精确取色。

跨风格页面模板(5 个,任意版式都能用)

scripts/templates/ 下提供 5 个跨风格通用页面模板——它们的取色、容器材质都跟当前版式走,
同一份内容脚本换 use_style 即可得到 4 套视觉,而代码一行不用改。

模板 调用 用途
时间轴(横向 / 纵向) kit.timeline(items, orient="h"/"v") 推进节奏、大事记、季度回顾
四象限矩阵 kit.matrix_2x2(quadrants, axis_x=…, axis_y=…) 优先级矩阵、SWOT、风险评估
漏斗 kit.funnel(stages) 转化漏斗、招聘漏斗、用户旅程
流程箭头 kit.process_flow(steps) 实施路径、工作流、审批流
金句页 kit.quote_page(text, author=…, sub=…) 章节扉页 / 结论页 / 总结页

写法示例:

P = kit.use_style("magazine", "blue")
prs = kit.new_presentation()
s = kit.new_slide(prs)
kit.title_bar(s, "01", "推进节奏", "TIMELINE")
kit.timeline(s, [
    ("Q1", "完成选型", "3 家供应商 POC"),
    ("Q2", "试点上线", "2 个部门试运行"),
    ("Q3", "全量推广", "8 个部门铺开"),
    ("Q4", "效果复盘", "效率提升 34%"),
])

模板的颜色全部从当前风格的色板取(MAIN/ACCENT/INK/GRAY/LINE),
因此 red 商务 + 蓝色杂志 + 深色科技各自出来的视觉差异是天然的——不需要为模板写多份代码。


一、浅色商务风(red / blue / green)→ scripts/business_ppt_kit.py

主题色板(use_theme 切换)

令牌 红 red 蓝 blue 绿 green 用途
MAIN C0392B 1F3864 006C57 主色:标题竖条、方块、本季柱、表头、数字
MAIN_DARK A93226 1B2A4A 00503F 深色备用
ACCENT C0392B 2E75B6 00A878 点缀
CARD_BG F5F5F5 F2F5FA EAF4F0 卡片/隔行底
BAR_BASE E0E0E0 D9E2F3 D5E8E0 柱状图基准

中性色共用:INK 2B2B2B 正文 / GRAY 8A8A8A 次要 / LINE E3E3E3 / WHITE;微软雅黑;16:9 画布 13.333"×7.5"。

组件函数

new_presentation / new_slide / save(prs, path)、add_text、add_rect、
add_title_bar(主题色竖条+编号+标题+英文小字)、add_point(主题色方块项目符号)、
add_compare_bars(自绘双柱:基准灰 vs 本季主色)、add_stat_cards(底部小指标)、
data_page(左文右图标准数据页;右图回调默认自绘,若该维度在 Excel 分析文件中已有原生图表,则改为 add_chart_slot 占位,生成后跑 embed_native_charts.py --theme red|blue|green 得主题化原生图表,见「图表素材」节)、add_chart_slot(Excel 原生图表占位框,命名 chart-slot:<工作表>[:<序号]>)、add_metric_table(主色底表头指标总表)。
组件内不要硬编码颜色,强调色用 MAIN / ACCENT。

> ⚠️ 主题色取色(重要,避免红绿混用):business_ppt_kit 导入时默认主题为红,
> 因此不要用 from business_ppt_kit import * 后直接引用 MAIN/ACCENT 再切主题——
> import * 只拷贝一次绑定(导入那一刻是红色),之后再 use_theme("green") 不会更新
> 脚本里已拷贝的 MAIN,会造成部分页面红、部分页面绿。
> 正确取色:import business_ppt_kit as kit 后 P = kit.use_theme("green"),
> 用返回值 P["MAIN"] / P["ACCENT"] / P["INK"] / P["CARD_BG"] …(或任意时刻 kit.get_theme())。
> 推荐改用 ppt_kit 统一入口(见上),从源头避免该陷阱。

写法模板(主题色用 use_theme 返回值取,勿依赖 import * 的拷贝)

import business_ppt_kit as kit
# 脚本放在其它目录时,先加:sys.path.insert(0, r"<skill安装目录>\ppt-report-sunbin\scripts")

P = kit.use_theme("blue")   # 返回当前主题全部色值;red/green/blue 三选一
prs = kit.new_presentation()
# ……逐页调用组件:kit.add_title_bar / kit.data_page / kit.add_chart_slot / kit.add_metric_table……
# 直接画形状/文字时用 P 取色:
#   kit.add_rect(s, x, y, w, h, fill=P["MAIN"])
#   kit.add_text(s, x, y, w, h, [[("标题", 28, True, P["INK"])]])
kit.save(prs, r"<输出路径>\季度汇报.pptx")

关键排版

  • 标题栏:主题色竖条 0.12"×0.56" @(0.9,0.72) + 标题 28pt 粗 @(1.18,0.58) + 英文小字 11pt 灰
  • 左右边距 0.9",内容宽 11.53";数据页右侧图表区 @(6.9,1.85) 宽 5.5"
  • 柱状图:基准 BAR_BASE、本季 MAIN、柱宽 1.25"、柱顶数值(灰 13pt / 主色 14pt)
  • 卡片居中公式 (11.53 − n·卡宽 − (n−1)·间距)/2,常用卡宽 3.55"、间距 0.4"
  • 表格:表头主色底白字 14pt 粗、隔行换底(白/CARD_BG)、高亮列主色加粗
  • 大段正文 14pt 深灰 + line_spacing=1.5;中文 latin+ea 字体(kit 已处理)

完整示例

scripts/example_business_report.py(红色 14 页:封面/目录/概述/左文右图/活动卡/指标总表/亮点/问题/计划/致谢)


二、深色科技风(dark)→ scripts/ppt_dark_kit.py

色板(模块常量,直接用名字)

BG 0B1220 深空蓝黑底 / BG_SOFT 0F1A30 / CARD 141F36 卡片底 / CARD_ALT 182642 /
BORDER 26375A / LINE 1E2A44 / CYAN 22D3EE 主强调青 / BLUE 3B82F6 次强调蓝 /
GOLD F5C542 关键数字金 / WHITE ECF2FB 主文字 / GRAY 8FA3BF / DIM 5A6B85 /
BODY C7D3E6 表格正文 / TBL_HEAD 1B2A4A / TBL_ROW_A/B / BAR_DIM 2E4166;微软雅黑。

组件函数(注意:模块级单例 prs,直接 save(path))

save(path)、new_slide(footer, decor=True)(深色底+装饰圆环+页脚页码)、
header(slide, title, sub=None)(青方块+标题+分隔线)、card(圆角卡+顶部色条)、
kpi(slide, x, y, w, h, label, value, caption, accent=CYAN, vcolor=WHITE)、
banner、bar_chart(自绘柱状图,深色适配)、dark_table(完成率金色/环比青色高亮)、
txt / rect / hline / ring / dots。

写法模板

# 内容脚本放在 skill 的 scripts/ 目录时,直接 import 即可
from ppt_dark_kit import *
# 脚本放在其它目录时,取消下面一行注释,改成你本机的实际安装路径
# sys.path.insert(0, r"<skill安装目录>\ppt-report-sunbin\scripts")
s = new_slide("2026 Q2 · 作者名", decor=True)
header(s, "本季度工作概览", "OVERVIEW")
card(s, x, y, w, h);  kpi(s, x, y, w, h, "指标", "1.2万", "说明")
bar_chart(s, data);   dark_table(s, headers, rows)
save(r"<输出路径>\汇报.pptx")

> 深色库每进程一份单例 prs,一个脚本只生成一份;内容脚本与 kit 同目录时直接 import。
> 推荐改用 ppt_kit:P = kit.use_style("dark_tech") 即可,组件调用一致。

关键排版

  • KPI 卡内:顶部色条 0.045" + 指标名 12.5pt 灰 + 大数字 25pt 粗(金/青/白)+ 说明 11pt 灰
  • 卡片行距:3 卡 4.11"、4 卡 3.075"(13.333" 宽)
  • 页眉:青方块 0.14" + 标题 23pt + 分隔线下 1.1" 青色高亮段
  • 正文 13-14pt 灰 + line_spacing=1.35;表格完成率金色、环比青色、隔行换底
  • 中文 latin+ea+cs 字体(_set_run_font 已处理)

深色科技风同样遵守「Excel 图表优先」:有 Excel 原生图表就先放 Excel 图表,只有 Excel 没有对应口径(如上下半年对比)才用 kit 自绘。
深色页放 Excel 图表必须深色化(深色底 + 白/浅色文字,否则黑字在深色页上看不清):内容脚本在目标位置放深色占位矩形并命名 chart-slot:<工作表>,生成后运行:

python <skill目录>/scripts/embed_native_charts.py <分析文件.xlsx> <深色pptx> --dark --font-size 14

--dark 会在 Excel 侧把图表临时改为深色主题(图表底 0B1220、绘图区 0F1A30、文字 ECF2FB/8FA3BF、折线与数据点青色、柱形蓝色、饼图青/蓝/金逐点、轴淡色;只读打开不保存,源文件不受影响),再粘贴为 PPT 原生图表——图表与深色页面融为一体、白字清晰且可编辑。
自绘(bar_chart 等)仅用于 Excel 中不存在对应图表的页面。

完整示例

scripts/example_dark_report.py(深色 14 页:封面/编号目录/概述三卡/KPI/活动卡+横幅/双栏/自绘柱状图/深色表格/亮点/问题条/计划四宫格+目标横幅/致谢)


三、杂志大标题风(magazine)→ scripts/styles/magazine.py

适用场景

述职 / 竞聘 / 年终总结 / 品牌发布——需要「气场」的场合。用超大字号和细线分隔把标题推到极致,正文让位给标题,靠排版而非装饰传递力量感。

骨架特征(与商务风的差别全在骨架,不在颜色)

  • 超大浅色编号(86pt)压在标题左侧作背景装饰
  • 标题 44pt 顶天立地,正文区让位给标题
  • 边距放宽到 1.0",不对称网格(正文只占左 5.5",右侧留给图)
  • 不用卡片,改用 0.75pt 细线分隔,留白是主要的分栏手段
  • KPI 用 48pt 超大数字

色板(与商务风同 hex,仅版式不同)

红 C0392B / 蓝 1F3864 / 绿 006C57 三套;正文 INK 1A1A1A 比商务风更黑;中性色 GRAY 8A8A8A / LINE DEDEDE。

写法模板

import ppt_kit as kit
P = kit.use_style("magazine", "blue")  # red / blue / green 三选一
prs = kit.new_presentation()
s = kit.new_slide(prs)
kit.title_bar(s, "01", "全年工作概述", "ANNUAL OVERVIEW")
kit.add_text(s, P["MARGIN"], 2.4, 5.5, 1.0,
             [[("围绕三条主线推进,核心指标超额达成……",
                14, False, P["GRAY"])]], line_spacing=1.5, font=P["FONT"])
kit.save(prs, "汇报.pptx")

完整示例

跑 selftest_styles.py 生成的 selftest_magazine_red/blue/green.pptx 即可看到三套色板的杂志风效果。


四、瑞士极简风(swiss)→ scripts/styles/swiss.py

适用场景

技术评审 / 政务国企汇报 / 信息量大、要求严肃克制的场合。零装饰、纯网格对齐,把视觉噪音降到最低——让内容自己说话。

骨架特征

  • 零装饰:无卡片、无圆角、无渐变、无阴影,层级全靠字号与粗细
  • 标题 32pt 粗体,上方压一条 0.85" 主色短线
  • 边距收紧到 0.75",同样的页面能多塞一栏内容
  • 主色只用在两个地方:那条短线 + 关键数字,其余全是黑灰
  • 表格无底色,靠极浅灰隔行与细线区分
  • 配色还支持 gray(纯墨 333333,去色版)

色板(主色只做点缀)

红 C0392B / 蓝 1F3864 / 绿 006C57 / 墨 333333 四套;正文 INK 111111 接近纯黑;中性色 GRAY 6E6E6E / LINE C9C9C9。

写法模板

import ppt_kit as kit
P = kit.use_style("swiss", "gray")  # red / blue / green / gray 四选一
prs = kit.new_presentation()
s = kit.new_slide(prs)
kit.title_bar(s, "01", "工作概述", "OVERVIEW")
kit.add_text(s, P["MARGIN"], 1.9, P["CONTENT_W"], 1.5,
             [[("围绕三条主线推进……", 13, False, P["INK"])]], line_spacing=1.45, font=P["FONT"])
kit.save(prs, "汇报.pptx")

完整示例

跑 selftest_styles.py 生成的 selftest_swiss_red/blue/green.pptx 即可看到三套色板的瑞士风效果。


图表素材:优先复用 Excel 原生图表(默认路径)

数据汇报 PPT 的图表素材按下述优先级取用,目标是 PPT 与 Excel 分析结果的图表视觉一致;
本规则对六种风格(红/蓝/绿商务、深色科技、杂志、瑞士)一律生效:

  1. 有 Excel 原生图表 → 用 PPT 原生可编辑图表(msoChart):数据来自配套的 Excel 分析文件
    (如 excel-analysis-sunbin 产出的多 sheet 分析 xlsx)且其中已有对应维度的原生图表时,
    PPT 必须复用该图表——以 PPT 原生可编辑图表(双击可改数据/格式)嵌入,并做主题化:
    图表颜色改成与所选 PPT 风格一致(绿色系 PPT 配绿色系图表、蓝色 PPT 配蓝色系图表……)。
    不要用静态 PNG 图片兜底,也不要另起炉灶自绘形状图或用 matplotlib 重画一套风格不同的图。
  2. Excel 没有对应图表 → 才用形状拼接:仅当该口径在 Excel 分析文件中没有对应图表
    (如 PPT 特有的「上半年 vs 下半年」对比、自定义结构条)时,才用 kit 的形状组件自绘
    (add_compare_bars / 自绘柱状 / 横向条),并沿用所选风格色板。

原生图表 + 主题化(默认方案)

  • 生成阶段:内容脚本里用 add_chart_slot(slide, x, y, w, h, "工作表"[, 图表序号])
    在图表位放占位框,命名 chart-slot:<工作表>[:<图表序号>]。
  • 二次加工:scripts/embed_native_charts.py 把 Excel 图表粘贴为该位置的 PPT 原生可编辑图表,
    并做主题化——颜色与字号在 Excel 侧临时改好后随图表进入 PPT(只读打开不保存,源文件不受影响):
    bash # 浅色商务风 red/blue/green:白底+深灰文字,系列=主题 MAIN/ACCENT/同系扩展+中性灰(单系列取主色) python <skill目录>/scripts/embed_native_charts.py <分析文件.xlsx> <目标.pptx> --theme green --font-size 14 # 深色科技风:深底 0B1220 + 白/浅色文字 + 青/蓝/金系列 python <skill目录>/scripts/embed_native_charts.py <分析文件.xlsx> <目标.pptx> --dark --font-size 14
  • 要点(均已实测):Paste() 默认即 PPT 原生图表(msoChart),无需 PasteSpecial;隐藏实例下
    不能访问 pasted.Chart,故颜色与字号调整放在 Excel 侧先改再复制;图表系列色按
    red/blue/green 各自色板(主色/亮色/深色/同系扩展/中性灰)循环,饼图/复合饼逐扇区上色、
    折线按系列上色、柱/条按系列上色。
  • 主题化样式对齐 excel-analysis-sunbin 规范(2026-09-05 起):浅色风与深色风主题化时,自动按
    excel-analysis-sunbin SKILL.md 的图表规范调整——无网格线 / 无刻度线 / Y 轴轴线隐藏 / X 轴轴线
    淡灰 #BFBFBF / 轴刻度 9 号深灰微软雅黑 / Y 轴数字格式 #,##0 / 标题 14 号加粗微软雅黑 /
    单系列无图例 / 多系列图例靠上 / 折线线宽 2.25 + 圆形标记 size 6 / 饼图无图例 + 类别名 + 占比。
    配色仍保留 PPT 主题(红/蓝/绿/深色),保证 Excel 与 PPT 图表视觉一致;尺寸保持按占位框自适应不变。
  • 占位尺寸自适应:默认按 Excel 图表原始宽高比在占位框内等比居中(不拉伸),
    横版 / 竖版 / 方形图都不会变形,占位框只需给出大致区域即可(data_page 默认 5.5×3.4 可放任意横版图,
    竖版条形图放高一点的占位更舒展);想强制铺满占位框加 --stretch。
  • 失败会报错:成功嵌入才删除占位矩形,失败保留占位便于排查;
    只要成功数少于占位总数就以非零码退出(不再静默通过)。
  • 依赖:Windows + 已装 Excel 与 PowerPoint + pip install pywin32。

兜底:导出 Excel 图表为静态 PNG(仅 COM 不可用时)

当本机没有 Excel/PowerPoint 或未装 pywin32,无法走原生图表时,才退回静态 PNG:

python <skill目录>/scripts/export_excel_charts.py <分析文件.xlsx> [输出目录] [--size 8.25x5.1] [--dpi 150] [--font-size 14]
  • 遍历每个工作表下的原生图表逐一导出:<工作表名>_<图表名>.png,默认输出到源文件同目录 charts/
  • --size 8.25x5.1:浅色商务 data_page 右图区(5.5×3.4 英寸)的 1.5 倍;竖版图(横向条形等)
    需单独用竖版尺寸导出,避免被拉变形
  • --dpi 150:导出约 1238×765 px,嵌入 5.5 英寸宽约 225 dpi,投屏清晰
  • --font-size 14:导出前把图表内文字临时放大,解决嵌入后字太小;只读打开不保存
  • 依赖 Windows + 已装 Excel(PowerShell COM,无需 pywin32);也可让用户手动「Excel 右键图表 → 另存为图片」

嵌入约定(等比、不拉伸)

  • 原生图表:由 embed_native_charts.py 按占位框尺寸自动放置,无需手工换算。
  • PNG 兜底:python-pptx add_picture 不要同时写死宽高造成拉伸;先读 PNG 宽高算比例再等比居中:
from PIL import Image
from pptx.util import Inches

def fit_picture(slide, png, x, y, box_w, box_h):
    """把 png 等比缩放后放入 (x,y) 处 box_w×box_h 英寸框内并居中,不拉伸"""
    iw, ih = Image.open(png).size
    k = min(box_w / iw, box_h / ih)   # 英寸/像素
    pw, ph = iw * k, ih * k
    slide.shapes.add_picture(png, Inches(x + (box_w - pw) / 2),
                             Inches(y + (box_h - ph) / 2),
                             width=Inches(pw), height=Inches(ph))
  • 浅色商务 data_page 右图区(x=6.9, y=1.85, 5.5×3.4 英寸):横版图(折线/柱形)用 8.25×5.1@150
    导出后可 fit_picture(s, png, 6.9, 1.85, 5.5, 3.4) 铺满;方形图(饼/圆环)按比例居中。

图表清晰度(字太小怎么办)

  • 原生图表/图片嵌入后字太小,主因是 Excel 图表内文字字号小(常见轴标签 9pt)+ 版面给图空间小。
  • 首选在 Excel 侧放大字号再带入:--font-size 14(正文标签 14pt,标题自动 +4pt);仍偏小就加到 16。
  • 版面允许时给图表更大的区域(整页图 / 半页图),字自然更大更清楚。

通用工作流

  1. 先定逻辑(每次制作的第一步):按顶部「0. 先定逻辑」与 references/logic_blueprint.md 走:三问 → 选骨架 → 出逻辑大纲(判断句标题+结论+收获+关系)→ 用户确认 → logic_check.py <大纲.md> 自检通过,才进入选版式。素材已含明确大纲时,至少完成「标题改判断句 + 每页补结论」。
  2. 环境:Python 3.9+,需 python-pptx(实测 1.0.2 通过;Windows 另建议 pywin32 以启用 Excel 原生图表嵌入)。
    Windows 上实测通过的组合是 Python 3.13 + python-pptx 1.0.2。
    ⚠️ 阶段分工:生成阶段只需 python-pptx;embed 嵌入与 render_check 渲染校验必须用
    装有 pywin32 的解释器(如系统 Python),且本机已装 Excel 与 PowerPoint(COM)。
    用错解释器会直接报"缺少 pywin32"。
  3. 解析源文档:zipfile+正则提取 docx 全文(不依赖第三方库),见两库历史用法。
  4. 选版式:1-6 编号(见顶部菜单);不确定先问用户。
  5. 图表素材:数据来自配套 Excel 分析文件且其中有对应维度原生图表的,内容脚本用 add_chart_slot 放占位,生成后跑 embed_native_charts.py --theme red|blue|green(浅色商务/杂志/瑞士)或 --dark(深色)嵌入主题化的 PPT 原生图表;仅 Excel 无对应图表的页面才用 kit 自绘,或 COM 不可用时按「兜底:导出 PNG」处理。
  6. 写内容脚本:用 ppt_kit 统一入口;换版式只改 use_style 第一行。
  7. 运行生成:cd scripts && python 内容脚本.py。
  8. 代码校验(用户偏好:不截图):python-pptx 读回校验页数、每页标题关键词、表格行列与数据;
    应嵌入 Excel 图的页面需存在原生图表(msoChart / graphicFrame 含 c:chart)而非静态 picture。
    颜色一致性要查全文件(slide + chart XML 一起查,不能只查图表,否则文字/形状的异色主色会漏掉):
    bash # XML 级:一键扫描全部 slide/chart 颜色,绿主题出现红/蓝主色即报错;同时检查占位残留与图表数量 python <skill目录>/scripts/verify_theme_colors.py <汇报.pptx> --theme green --expect-charts 4 # 渲染级:COM 逐页导出 PNG + Pillow 像素检测异色占比(仍不截图,输出量化数字) python <skill目录>/scripts/render_check.py <汇报.pptx> --theme green
    两者任一发现异色都会非零退出;浅色主题页面/图表应只见主题主色系(如绿主题
    006C57/00A878 系)+ 中性色,深色主题为 0B1220 底 + 青/蓝/金 + 浅色文字。
  9. 成稿逻辑抽查(可选):python <skill目录>/scripts/logic_check.py --pptx <汇报.pptx> 逐页抽查标题是否为判断句(启发式提示,供人工复核;正式逻辑把关在大纲阶段)。
  10. 自检脚本(推荐,每次发布前跑):
    bash # 跨全版式自检:10 套组合(红/蓝/绿×商务+杂志+瑞士 + 深色) python <skill目录>/scripts/selftest_styles.py [输出目录] # 跨风格模板自检:4 套版式 × 5 个模板 = 20 套结构应一致 python <skill目录>/scripts/selftest_templates.py [输出目录]

已验证

  • 红:2026-09-02 孙斌「易效云产品运营 Q2 季度汇报」14 页,逐页校验通过
  • 蓝:2026-09-02 教学案例「季度销售数据分析汇报」11 页,逐页校验通过
  • 蓝:2026-09-03 教学案例「2025 年度销售数据分析汇报(Excel 图表复用版)」10 页:月度折线 / 区域柱形 / 区域占比饼均直接嵌入 Excel 分析文件导出的 PNG,逐页校验通过
  • 深:2026-09-01 孙斌「个人工作汇报 Q2」14 页,kit 复现与手写版逐页一致
  • 绿:2026-09-04 教学案例「2025 年度财务数据分析汇报(绿色商务风 · Excel 原生图表主题化版)」11 页:
    收支柱/费用复合饼/月度折线/组合图/部门条形/堆叠柱 6 张 Excel 图均以 embed_native_charts.py --theme green
    嵌入为 PPT 原生可编辑图表,系列色统一绿色系(006C57/00A878 等,无红蓝残留),逐页校验通过
  • 深:2026-09-03 教学案例「2025 年度销售数据分析汇报(深色科技风 · Excel 图表复用版)」10 页:月度折线 / 区域柱形 / 区域占比饼以 embed_native_charts.py --dark --font-size 14 深色化后嵌入 PPT 原生图表(深底+浅色文字,渲染量化图表区平均亮度约 27),上下半年对比因 Excel 无此口径用形状拼接,逐页校验通过
  • 1.1.0 重构(2026-09-04):
  • 商务风 14 页与深色 14 页逐页 XML 比对(商务逐字节一致、深色语义一致)
  • 全版式自检 10 套(business×3 + dark_tech + magazine×3 + swiss×3)颜色校验全部通过
  • 跨风格模板自检 8 套组合(business×3 + dark_tech + magazine×2 + swiss×2)shape 数完全一致 [9, 13, 30, 15, 23, 5]

更新记录

1.2.0(2026-09-05)

  • 新增「逻辑起草层」(职场 PPT 的灵魂,逻辑先行):
  • references/logic_blueprint.md:逻辑起草全流程规范——三问定逻辑、四选骨架(S1 结论-依据-行动默认)、
    判断句标题铁律(✗「费用分析」✓「人力成本占六成,是管控第一抓手」)、每页四要素(判断句标题/结论/收获/关系)、
    关系→页面模板映射、数据页读图结论+来源行规则、大纲文件格式。
  • scripts/logic_check.py:大纲自检(骨架/标题判断句/四要素/关系合法性,有 error 非零退出)+
    成稿抽查(--pptx 逐页标题提示)。
  • SKILL.md 工作流新增「步骤 0 先定逻辑」:三问 → 选骨架 → 出大纲 → 用户确认 → 自检通过后再选版式排版。

1.1.5(2026-09-05)

  • embed_native_charts.py 后处理再增一处修复 + Excel COM 同步设(解决折线图 marker 用 diamond 方块而不是 circle 小圆点的问题):
    1. Excel COM 层:在两个 MarkerForegroundColor / MarkerBackgroundColor / MarkerSize 设置块中各加 sr.MarkerStyle = 8(xlMarkerStyleCircle),让源 Excel 图表的 marker 就是 circle。
    2. EXCEL_MARKER_SIZE 从 6 调到 5:用户希望"小圆点",从默认 6 缩到 5。
    3. XML 后处理兜底:新增 _force_circle_markers(),把所有 <c:symbol val="diamond|square|triangle|x|plus|star|dash|picture|circle"/> 统一改成 <c:symbol val="circle"/>;同时把 marker 块内 <c:size val="N"/> 统一改为 5。重复运行安全(再次匹配仍得到 circle + 5)。
  • 验证:chart1.xml marker 从 diamond/size=6 → circle/size=5;3 张 chart XML 仍 well-formed;v1.1.3 / v1.1.4 修复全部保留。

1.1.4(2026-09-05)

  • embed_native_charts.py 后处理再增两处修复(解决 PPT 端默认行为造成的两个视觉问题):
    1. 标题不叠加 + 强制占顶部布局:PPT 粘贴时把所有图表的标题设成 <c:overlay val="1"/>,
    导致标题浮在绘图区上方不占布局空间、和柱形/折线/扇区视觉重叠。新增 _force_title_top_layout():
    把 overlay 改为 0,给每个 c:title 注入 <c:layout><c:manualLayout>(x=0, y=0, w=1, h=0.12),
    让标题强制占顶部 12% 条带,绘图区自动下移不再重叠。
    2. 饼图标签强制外置:v1.1.2 在 Excel 侧设了 dl.Position = 3 (outEnd),但 PPT 粘贴时
    把 dLbls 里的 <c:dLblPos> 元素吞掉、默认渲染成 inEnd(扇区内)。新增 _force_pie_outside_labels():
    识别 c:pieChart / c:doughnutChart 块,给其中每个 c:dLbls 注入
    <c:dLblPos val="outEnd"/>(在 spPr 之后、show* 之前,符合 ECMA-376 schema),
    标签显示在扇区外并自动加引线(showLeaderLines=1)。
  • v1.1.4 二次修复(2026-09-05 同日 hotfix):上面的 manualLayout 写法写错 schema——
    把 <c:xMode val="edge"/> 写成 <c:x mode="edge"><c:val>0</c:val></c:x>,
    PowerPoint 解析报错直接打不开文件("发现无法读取的内容")。按 ECMA-376
    CT_ManualLayout 子节点规范:xMode/yMode/wMode/hMode 都是带 val 属性的元素,
    x/y/w/h 也是带 val 属性的 double 元素,不是嵌套的 <mode><val> 结构。
    已修正为 <c:xMode val="edge"/> + <c:x val="0"/> 等 8 个子节点的标准写法。
  • 鲁棒性:两个 patch 都做了"已存在则跳过"的检查,重复运行后处理不会重复插入;scope 限定
    在饼/圆环图内或单个 title 节点,避免影响柱/折线等其他图表。

1.1.3(2026-09-05)

  • embed_native_charts.py 新增 post_process_pptx_charts() XML 后处理:v1.1.2 在 Excel COM 层
    改 axis(删网格线 / 改 TickLabelPosition / 改轴线样式)但实际几乎全部失效——根因是源 Excel 图表
    axis 是"半残废"配置(catAx 错配 axPos val="l",valAx 缺 numFmt 等),Excel COM Axes().Count=0,
    所有 ax.HasMajorGridlines = False 等调用全被 try/except 静默吞掉;PPT 端粘贴时自动给每个 axis
    生成 <c:delete val="1"/> + <c:majorGridlines/>,结果就是"轴线全隐藏+网格线还在"。
  • 新后处理流程:Excel COM 嵌入完成后,用 zipfile 直接打开 PPTX,对每张 chart XML 做三件事:
    1. 物理删除 <c:majorGridlines/> / <c:minorGridlines/> 节点(无论是否存在都从 XML 移除);
    2. 把 <c:delete val="1"/> 改回 val="0",避免 tickLblPos 因 axis 被整体隐藏而失效;
    3. 给 catAx/valAx 注入 <c:spPr>:Y 轴 <a:ln><a:noFill/>(轴线隐形、标签可见)、
    X 轴 <a:ln><a:solidFill><a:srgbClr val="BFBFBF"/></a:solidFill>(淡灰细线)。
  • 这层 XML 后处理不依赖 Excel COM,对任何源 Excel(即使是 axis 配置残废的)都能稳定生效。

1.1.2(2026-09-05)

  • embed_native_charts.py 三处补丁:
  • 网格线删除强化:HasMajorGridlines/HasMinorGridlines = False 优先(最直接的开关属性),再
    Delete(),最后 Format.Line.Visible=False 兜底——三层都失败时强制隐藏,杜绝 PPT 端仍渲染网格线。
  • 强制 TickLabelPosition = xlTickLabelPositionNextToAxis(-4127):v1.1.1 有些图表的
    TickLabel 默认落到 High/None/不显示(特别是带数据图表 + 自定义模板的源),强制锁回轴边。
  • 饼图 DataLabels.Position = xlLabelPositionOutsideEnd(3):标签从扇区内挪到扇区外面,
    避免与扇区颜色冲突看不清。

1.1.1(2026-09-05)

  • embed_native_charts.py 主题化样式对齐 excel-analysis-sunbin SKILL.md 图表规范:
    浅色风(red/blue/green)与深色风(dark)主题化时,自动应用 Excel-analysis-sunbin 第 60-72 行规定的样式——
  • 无主/次网格线(MajorGridlines/MinorGridlines 删除或隐藏)
  • 无刻度线(MajorTickMark/MinorTickMark = xlTickMarkNone)
  • Y 轴轴线隐藏;X 轴轴线淡灰 #BFBFBF
  • 轴刻度 9 号深灰 #595959 微软雅黑;Y 轴数字格式 #,##0
  • 标题 14 号加粗微软雅黑
  • 单系列或饼图 → 不显示图例;多系列 → 图例靠上
  • 折线系列:线宽 2.25、圆形标记 size 6
  • 饼图:逐扇区配色 + 类别名 + 占比 + 数字格式 0.0% + 无图例
  • 字体统一微软雅黑(标题/轴刻度/图例/数据标签)
  • 配色保留 PPT 主题(红/蓝/绿/深色),与 excel-analysis-sunbin 8 套 palette 解耦——PPT 端的
    red/blue/green 对应"主题色",Excel 端 8 套 palette 仍由 excel-analysis-sunbin 自管理。
  • 图表尺寸保持按占位框等比自适应(不变为 505×305),PPT 版面布局不受影响。

1.1.0(2026-09-04)

  • 架构升级——风格 × 配色二维化:把两套独立库(商务 + 深色)拆成统一架构——
  • core_ppt.py 基础层:画布、字体、形状、图表占位、表格构造器(合并自两套库重复代码)
  • styles/business.py 浅色商务(含 red/blue/green 三色板)
  • styles/dark_tech.py 深色科技
  • styles/magazine.py 杂志大标题风(新;red/blue/green 三色板)
  • styles/swiss.py 瑞士极简风(新;red/blue/green/gray 四色板)
  • ppt_kit.py 统一入口:use_style(style, color) 一行切换版式
  • 新增跨风格页面模板层(templates/):时间轴(横/纵)、四象限矩阵、漏斗、流程箭头、金句页——5 个模板跨 4 套版式通用,取色/容器材质都跟当前风格走。
  • 兼容壳保留:business_ppt_kit.py / ppt_dark_kit.py 降级为转发壳,老示例脚本(example_business_report / example_dark_report)一字未改仍可运行,逐页回归通过。
  • 统一组件契约:所有风格都实现同名组件 title_bar / card / kpi / point / table / add_chart_slot 等,内容脚本换 use_style 不改一行代码。
  • 新增自检脚本:
  • selftest_styles.py —— 10 套版式组合的全套自检 + 颜色校验
  • selftest_templates.py —— 跨风格模板结构一致性校验(shape 数完全一致)

1.0.2(2026-09-04)

  • 修复主题色绑定陷阱:use_theme(name) 现在返回当前主题全部色值(主题色+中性色+字体),
    并新增 get_theme();写法模板与示例改为 P = kit.use_theme(...) 取色,杜绝
    from … import * 拷贝旧主题导致的"红绿混用"。示例脚本修复 fill=LIGHT 未定义问题(改用 CARD_BG)。
  • 新增一键校验脚本:verify_theme_colors.py(XML 级全文件颜色一致性 + 占位残留 + 原生图表数量)、
    render_check.py(COM 逐页导出 PNG + Pillow 像素异色检测,输出量化占比)。
  • embed 更健壮:默认按 Excel 图表原始宽高比在占位框内等比居中(不拉伸),竖版/方形图不再变形;
    成功数少于占位总数时非零退出(不再静默跳过);--stretch 可恢复强制铺满。

常见问题

5 问
答案由本站依据条目字段整理
ppt-report-sunbin怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_e49a740a/ppt-report-sunbin。安装方式为未标注。装完刷新技能列表或重开客户端。

ppt-report-sunbin支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

ppt-report-sunbin权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

ppt-report-sunbin收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

ppt-report-sunbin用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。