<!-- title: 办公层补漏：数据处理六件横评 -->

# 办公层补漏：数据处理六件横评

## 概述

这个系列走到第四轮，官方给的方向是「内容创作与办公类」。但盘点前几轮的覆盖面会发现：写作线五件横评、SEO双子、PPT六件、docx改XML，这几块洼地都已经被填掉了。内容创作与办公这个大分区里，还剩两块没人碰的地：**数据处理**（表格、笔记本、格式转换）和**内容改写**（一稿多发）。

本期把这两块地一次性犁完，共六件：官方 `xlsx`、社区 `spreadsheet`、工具流 `office-mcp`、单点件 `md2pdf`、双模板件 `jupyter-notebook`、纯提示词件 `content-repurposer`。与以往不同，本期六件的 SKILL.md 全部来自本机已安装环境的原文读取，所有引用片段均为一手材料；来源不明的件会明确标注，不编造 Star 数和下载量。

三个核心发现先放在前面：**同一张 Excel 工单，官方件和社区件给出了两种完全不同的工程哲学**——官方靠机器验收闭环，社区靠人的审美规范；**MCP 路线和 Skill 路线在同一赛道正面相撞**，office-mcp 用 39 个常驻工具对垒两个按需加载的提示词件；**Codex 生态的 Skill 正在搬进 Claude 的技能目录**，jupyter-notebook 里裸露的 `~/.codex/skills` 路径是这次生态迁徙的直接物证。

## 评测对比表

| Skill | 功能完整度 25% | 设计质量 25% | 实战效果 20% | 上手难度 15% | 社区活跃度 15% | 加权总分 |
|---|---|---|---|---|---|---|
| xlsx（官方） | ★★★★½ | ★★★★★ | ★★★★½ | ★★★★ | ★★★★ | **4.5** |
| spreadsheet | ★★★★ | ★★★★ | ★★★★ | ★★★½ | ★★★ | **3.8** |
| office-mcp | ★★★★★ | ★★★½ | ★★★★ | ★★½ | ★★★ | **3.8** |
| md2pdf | ★★★½ | ★★★★ | ★★★★ | ★★★½ | ★★½ | **3.6** |
| jupyter-notebook | ★★★½ | ★★★★ | ★★★½ | ★★★½ | ★★½ | **3.5** |
| content-repurposer | ★★★ | ★★★½ | ★★★ | ★★★★★ | ★★½ | **3.4** |

社区活跃度一项的说明：只有 `xlsx`（经官方插件渠道分发）和 `office-mcp`（SKILL.md 内自带仓库链接）能确认分发渠道，其余四件在 SKILL.md 里均未注明出处仓库，本环境无法核验其 Star 与更新频率，该项按保守值给分。这也是本期想提醒的一件事：**装机目录里大量 Skill 是「无名片」的**，上一轮安全专题讲过供应链风险，本期不再展开，但评分里如实扣了。

## 一、xlsx（官方件）：把测试驱动搬进表格

这是 anthropics/skills 官方仓库的件，本机经 `anthropic-agent-skills` 插件包装入。它拿下本期第一，靠的不是功能最多，而是一条完整的验收闭环。

SKILL.md 里最核心的一条设计是这句话：

> **Always use Excel formulas instead of calculating values in Python and hardcoding them.**

为了让模型真正执行这条纪律，它不是靠说教，而是给了正反对照的代码示例——先用 ❌ 标出「在 Python 里算好 sum 再写死进单元格」的错误写法，再用 ✅ 给出 `sheet['B10'] = '=SUM(B2:B9)'` 的正确写法。这种「错误示范先行」的写法比单纯的规则罗列有效得多，因为模型最常犯的错已经被预先具象化了。

真正让它拉开差距的是 recalc.py 强制重算环节。SKILL.md 用了大写强调：

> **Recalculate formulas (MANDATORY IF USING FORMULAS)**: Use the scripts/recalc.py script

openpyxl 写进去的公式只是字符串，没有计算值。这个件的解法是用 LibreOffice 无头模式重算整个工作簿，然后**扫描所有单元格，返回带精确定位的 JSON 错误报告**：

```json
{
  "status": "errors_found",
  "error_summary": {
    "#REF!": { "count": 2, "locations": ["Sheet1!B5", "Sheet1!C10"] }
  }
}
```

生成 → 机器验收 → 带定位的报错 → 修复 → 再验收，这是把单元测试的思想搬进了 Skill 设计。此外它还有两条容易被忽略的细节：警告 `data_only=True` 打开后保存会**永久丢失所有公式**（这是真实踩坑点）；硬编码数值必须注释来源，格式固定为 `Source: Company 10-K, FY2024, Page 45...`。财务建模的审计思维渗透到了每一格。

短板也有：整个体系绑死 LibreOffice，环境里没装就得先补系统级依赖，对轻量用户不算友好。

## 二、spreadsheet（社区件）：同一张表的另一种哲学

如果把 xlsx 和 spreadsheet 的 SKILL.md 摆在一起看，会发现一个有趣的事实：两者共享几乎同一套财务配色规范——蓝色为用户输入、黑色为公式、绿色为跨表链接、零值显示为 `-`、表头必须带单位（`Revenue ($mm)`）。这些本是华尔街建模的行业惯例，两个件各自内化了一套。

但分叉点很能说明问题。spreadsheet 没有强制重算脚本，它的验收方式是**渲染回看**：

```bash
soffice --headless --convert-to pdf --outdir $OUTDIR $INPUT_XLSX
pdftoppm -png $OUTDIR/$BASENAME.pdf $OUTDIR/$BASENAME
```

把不可见的排版渲染成 PNG 交给模型「亲眼看」，这是和 recalc.py 完全互补的思路：官方件验收逻辑对不对，社区件验收好不好看。它还有一条官方件没有的硬规定——修改已有格式的表格前必须先渲染检查，且「完全保留既有格式」，这是对「AI 一动手就把模板改花」这一高频事故的防御。

更细的是它把投行排版规范直接写成了规则：合计行必须汇总正上方区间、隐藏网格线、小计上方加横线、章节头用深色填充合并单元格、数字右对齐文字左对齐、子指标在父项下缩进。甚至有引用规范：网页数据入表必须加 Source 列。另外注意一个细节——它的示例目录写作 `references/examples/openpyxl/`，前缀是 Codex；配合 jupyter-notebook 里的证据（见第四节），这件大概率是从 Codex 生态迁徙来的，属于「同一套行业规范在两个 Agent 生态各自落地」的样本。

短板：没有机器验收闭环，公式算错不报错，只靠渲染看排版；依赖清单长（openpyxl、pandas、LibreOffice、Poppler）。

## 三、office-mcp（工具流派）：39 个工具的全家桶

这是六件里唯一不走 Skill 常规路线的——它本质是一个 MCP Server（TypeScript/Node.js），SKILL.md 更像一份工具目录书。39 个工具分五组：PDF 十个（含 OCR）、表格七个、Word 六个、转换九个、PPT 七个，仓库指向 `claude-office-skills/skills`。

亮点在覆盖面和几个「脏活」工具：`ocr_pdf` 和 `ocr_image` 用 tesseract.js 纯 JS 实现，不用装原生二进制，支持简繁中文、日、韩、法、德、西、英八种语言——扫描件转文字这块，前两件都没碰。转换组也是六件里最全的：`docx_to_md`、`pdf_to_docx`、`batch_convert` 一次批量转。

但它的 SKILL.md 暴露了工具派的典型短板：全文几乎是工具清单加安装说明，**缺少工作流约束和验收环节**——没有 xlsx 那种「必须重算」的纪律，也没有 spreadsheet 那种「先渲染再动手」的防御。工具多而不带流程，等于把判断成本全部交还给模型现场发挥。另一个诚实的细节是它自己标注了 `docx_to_pdf`、`html_to_pdf` 「external tool required」，不是纯 JS 能闭环的。

路线之争值得说透：MCP 的 39 个工具 schema 一旦挂载就常驻上下文，而 Skill 是按需加载、用渐进披露把细节藏在 references 里。对重度办公用户，全家桶省去反复装依赖；对偶发用户，两个 Python 脚本件更轻。安装成本也是六件里最重的：clone → npm install → npm run build → 手改 MCP 配置 JSON → 重启客户端，五步起步。

## 四、jupyter-notebook（迁徙样本）：带着 Codex 胎记的双模板件

这件的价值一半在功能，一半在它身上裸露的生态证据。SKILL.md 里明晃晃写着：

```bash
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
export JUPYTER_NOTEBOOK_CLI="$CODEX_HOME/skills/jupyter-notebook/scripts/new_notebook.py"
```

`~/.codex/skills`——这是 OpenAI Codex CLI 的技能目录路径。一件为 Codex 写的 Skill，几乎没改就进了 Claude 的技能库，这印证了 SKILL.md 格式作为事实标准正在跨生态通用：frontmatter 加正文的结构，两边通吃。对想做 Skill 的读者，这意味着**按这套格式写的东西，天然是跨平台的**。

功能设计上它是「脚手架」模式：不让模型手写 notebook 的裸 JSON（手写 JSON 是单元格结构出错的重灾区），而是提供 `new_notebook.py` 脚本，从 `experiment` 和 `tutorial` 两个模板里选一个生成骨架，再往里填内容。选型用一棵极简决策树：探索性、假设驱动的选 experiment；教学性、分步骤的选 tutorial。配套四个 references 文件——实验模式、教学模式、JSON 结构、质检清单——是渐进披露的标准写法。

短板：它只管「造出干净的可复现 notebook」，不碰执行分析本身，和前两件的表格处理是互补而非竞争；社区活跃度同样无从核验。

## 五、md2pdf（单点件）：一个 Skill 只赌一个痛点

这是六件里最小的，也是痛点定义写得最好的一篇——SKILL.md 开篇第一节就叫 **The Problem It Solves**，直说两件事：Mermaid 时序图（尤其参与者多的）导出 PDF 必横向溢出被截断；JSON、信令这类长行代码块同样被切。整个 Skill 就赌这两个问题，别的一概不管。

解法是两步流水线：自带的 `md2pdf.py` 把 Markdown 转成带打印 CSS 的 HTML（Mermaid 块转成 `div.mermaid` 交给 mermaid.js CDN 渲染，`useMaxWidth: true` 强制缩放适配页宽；代码块用 `white-space: pre-wrap` 加 `word-break: break-all` 强制换行），然后用 Playwright 打开 HTML、等 5 秒渲染、调 `page.pdf` 出 A4。

最值得抄的是它把作者自己踩过的 Mermaid 坑直接写成了规范：不要用菱形节点 `{}` 塞复杂文本、节点文本里不要出现 `?` 和 `!`、少用 `<br/>`，并给了「错误写法 vs 正确写法」对照——和官方 xlsx 的正反示例是同一招。本期文章里的 Mermaid 图能安全渲染，某种程度上也是站在这类前人的坑上。

短板明确：依赖网络拉 mermaid CDN（断网环境直接瞎等那 5 秒）；Playwright 加 Chromium 是重依赖；单点件的天花板就是那一个问题。

## 六、content-repurposer（纯提示词件）：内容创作线的另一极

前五件都在办公数据线，这件代表内容创作线的典型形态：**零脚本、零依赖，全部价值浓缩在提示词框架里**。上手难度五星——复制进去就能用，但实战效果也最依赖模型自觉。

它的骨架是一张 6×6 转换矩阵：博客、研报、演示、视频、案例、数据六种源内容，对应 Twitter、LinkedIn、Instagram、Newsletter、博客、播客笔记六种去向，每一格写明载体形态（博客转 X 是「5-10 条推文串」，转 Instagram 是「5-10 页轮播图」）。往下再拆到平台模板级：X 推文串第一帧必须是独立成立的钩子、LinkedIn 前 2 行必须卡在「see more」折叠线之前、正文 1300 字符是甜点位、链接放首条评论因为算法偏好——这些都是能直接执行的平台细节。

还有一个结构上的巧思：结尾的 See Also 用相对路径链向 `../marketing/SKILL.md`、`../newsletter-creator/SKILL.md`、`../brand-identity/SKILL.md`。这说明它不是孤件，而是一个内容营销套件里的一个工位，Skill 之间开始出现「套件互链」的组织形态——上一轮多 Agent 横评里讲的「组织隐喻」，在这里以文档互链的形式提前出现了。

短板也干脆：没有任何工具或脚本兜底，平台规则（字符数、算法偏好）写死在文本里，平台一改版内容就过期；相比数据线那几件的机器验收，它的产出质量没有客观检查手段。

## 两条线的设计范式分化

把六件摆在一起，能看到 Skill 生态里内容与办公两条线正在分化出不同的设计范式：

```mermaid
mindmap
  root((办公与数据线))
    表格处理
      xlsx 官方验收闭环
      spreadsheet 渲染回看
      office-mcp 三十九工具
    文档转换
      md2pdf 单点痛点
      office-mcp 转换九件组
    分析载体
      jupyter-notebook 双模板脚手架
    内容改写
      content-repurposer 纯提示词矩阵
```

数据线的件越来越像**软件工程**：脚本、验收、错误报告、依赖管理；内容线的件越来越像**方法论文档**：矩阵、模板、清单、风格指南。前者赢在可验证，后者赢在零门槛。如果你要写自己的第一个 Skill，从这个分化里能提炼出五个可直接复用的模式：

1. **验收闭环**（抄 xlsx）：生成后必须过一道机器检查，报错带精确定位；
2. **渲染回看**（抄 spreadsheet）：把模型看不见的东西变成图给它看；
3. **正反示例**（xlsx 和 md2pdf 都在用）：错误写法打 ❌ 放在正确写法前面；
4. **脚手架优先**（抄 jupyter-notebook）：结构化产物用脚本生成，别让模型手写 JSON；
5. **痛点单一**（抄 md2pdf）：SKILL.md 第一段先写清楚你解决什么问题，解决不了的不碰。

## 选型工作流

最后给一条从需求出发的选型路径：

```mermaid
flowchart TD
    A["接到办公数据处理需求"] --> B["要动 Excel 公式吗"]
    B -->|要| C["xlsx 官方件"]
    B -->|只做格式与排版| D["spreadsheet"]
    A --> E["扫描件 OCR 或批量格式转换"]
    E --> F["office-mcp"]
    A --> G["Markdown 文档出 PDF"]
    G --> H["md2pdf"]
    A --> I["产出要可复现的分析笔记本"]
    I --> J["jupyter-notebook"]
    A --> K["一稿多发到多平台"]
    K --> L["content-repurposer"]
```

## 推荐排行榜

- **综合第一**：xlsx（官方）——唯一带机器验收闭环的表格件，公式件交付质量的天花板
- **上手最快**：content-repurposer——零依赖零配置，复制即用
- **功能覆盖最广**：office-mcp——39 个工具横跨 PDF、表格、Word、PPT、转换五域，OCR 独一份
- **最值得抄的设计**：xlsx 的 recalc.py 闭环——「生成必验收，报错带定位」应成为所有产出型 Skill 的标配
- **最小而美**：md2pdf——一个 Skill 赌一个痛点，痛点定义段落的写法可直接当模板
- **生态观察价值最高**：jupyter-notebook——`~/.codex/skills` 的胎记证明 SKILL.md 格式正在跨平台通吃
- **风险提示**：spreadsheet、md2pdf、jupyter-notebook、content-repurposer 四件均未在 SKILL.md 注明来源仓库，装机前建议先在 skillsmp.com 或 skillsdirectory.com 查安全评级

## 安装与使用

```bash
# xlsx（官方件）：经官方插件包分发，本机即装自 anthropic-agent-skills 插件
# 也可在官方仓库获取：
#   https://github.com/anthropics/skills
# 或用 skills.sh CLI 定位：
npx skills find xlsx

# office-mcp：clone 后手动构建，五步安装
git clone https://github.com/claude-office-skills/skills
cd skills/mcp-servers/office-mcp
npm install && npm run build
# 然后在 Claude Desktop 配置文件 mcpServers 中指向 dist/index.js

# 其余四件（spreadsheet / md2pdf / jupyter-notebook / content-repurposer）
# 本机已装于 ~/.claude/skills/，SKILL.md 未注明出处仓库，
# 可用目录站按名定位同名件后再安装：
npx skills find spreadsheet
npx skills find md2pdf
npx skills find jupyter-notebook
npx skills find content repurposer
```

依赖提示：xlsx 与 spreadsheet 需要 `pip install openpyxl pandas`，渲染回看另需 LibreOffice 和 Poppler（`apt-get install libreoffice poppler-utils`）；md2pdf 需要 `pip install markdown playwright` 并 `playwright install chromium`，且运行时有网。

## 参考来源

1. [anthropics/skills](https://github.com/anthropics/skills) — 官方 Skill 仓库，xlsx 件的源头，本机经 anthropic-agent-skills 插件包装入印证
2. [claude-office-skills/skills](https://github.com/claude-office-skills/skills) — office-mcp 所属仓库，链接取自其 SKILL.md 内置的资源章节
3. [skillsmp.com](https://skillsmp.com) — Skill 聚合目录，用于核查无出处件的同名定位
4. [skillsdirectory.com](https://www.skillsdirectory.com) — 带安全扫描评级的 Skill 目录，装机前查询建议来源
5. [skills.sh](https://skills.sh) — Skill 生态站与 `npx skills` CLI 的所属生态，本期安装命令来源
6. 本机 `~/.claude/skills/` 与 anthropic-agent-skills 插件缓存 — 本期六件 SKILL.md 的一手原文，所有引用片段均出于此

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
