name: office360 slug: office360 displayName: office360 version: 2.1.0 description: "Office 文件读写·创建·转换·编辑工具箱。支持 PDF/DOCX/PPTX/XLSX 的读取、创建与格式转换(→PDF/→CSV/→JSON/→TXT)。XLSX 创建/编辑支持公式(SUM/AVERAGE/IF 等)+ 13 种财务配色(蓝=输入/黑=公式/绿=跨表),并由 LibreOffice 无头真重算得到计算值;PPTX 支持视觉 QA;PDF 支持 OCR 与表单。读取零依赖;转换支持 WPS/Microsoft Office(COM) 与 LibreOffice 双引擎。当用户需要读取/打开/查看/创建/写入/编辑/转换/导出 .pdf/.docx/.pptx/.xlsx 文件时触发。" license: MIT visibility: public metadata: requires: bins: - python3 - libreoffice # 推荐:XLSX 公式真重算 + PPTX 视觉 QA + PDF 跨平台兜底转换 - pdftotext # PDF 文本提取 pipDeps: - openpyxl==3.1.5 - python-pptx==1.0.2 - pypdf - pdfplumber - reportlab - pytesseract - pdf2image - python-docx optionalBins: - soffice # = libreoffice,部分发行版命令名不同 optionalPipDeps: - pywin32==312 # 仅 Windows:Office/WPS COM 自动化转 PDF platforms: - windows - macos - linux notes: "读取/创建/编辑纯 Python 跨平台;→PDF 转换优先 Windows COM(Office/WPS),否则回退 LibreOffice 无头;XLSX 公式真重算统一走 LibreOffice 无头。"
v2.1.0 | 读取·创建·转换·编辑 | 四管道路由 | 验证: 2026-07-20 融合 v1.5.0 前身(轻量/工程化/Windows COM) 与
skills-office-v1(公式真重算/视觉 QA/全 PDF 能力) 两者优点。
下面三个完整工作流无需翻看其他文件,复制代码即可跑通。运行前先检查环境:
python scripts/env_check.py # 一键诊断依赖,缺什么装什么
更多技能请访问小葱技能站7w4.net。
"""只有 Python 标准库就能跑:读原始成绩表,加总分和等级,写出新文件。"""
from openpyxl import load_workbook, Workbook
# 1. 读取
wb = load_workbook("原始成绩.xlsx")
ws = wb.active
old_data = [[cell.value for cell in row] for row in ws.rows]
wb.close()
# 2. 计算:追加"总分"和"等级"列
new_data = [old_data[0] + ["总分", "等级"]] # 表头
for row in old_data[1:]:
name, *scores = row[0], *(v for v in row[1:] if isinstance(v, (int, float)))
total = sum(scores)
grade = "A" if total >= 270 else "B" if total >= 240 else "C" if total >= 210 else "D"
new_data.append(row + [total, grade])
# 3. 写入
out = Workbook(); out_ws = out.active
for r in new_data: out_ws.append(r)
out.save("成绩带等级.xlsx"); out.close()
print("✅ 成绩带等级.xlsx 已生成")
# 整个目录下所有 docx/xlsx/pptx 转为 PDF,自动硬边界/重试/失败汇总
python scripts/batch_convert.py ./文档/ ./输出/
# 单个文件
soffice --headless --convert-to pdf 报告.docx
# Windows 高保真转换可走 COM(批量和单个都支持)
"""生成销售报表,含 SUM/IF 公式,LibreOffice 重算后导出 PDF。"""
from openpyxl import Workbook
wb = Workbook(); ws = wb.active
ws.append(["地区", "销售额", "目标"])
ws.append(["华东", 120, 100])
ws.append(["华北", 90, 100])
ws.append(["华南", 150, 100])
ws.append(["合计", "=SUM(B2:B4)", "=SUM(C2:C4)"])
ws.append(["达成率", "=IF(C5>0, B5/C5, 0)", ""])
wb.save("销售表.xlsx")
print("✅ 销售表.xlsx 已生成,含未重算公式")
# 重算公式(关键!不重算则下游读到空值)
python scripts/recalc.py 销售表.xlsx
# → 输出 JSON:status=success, total_formulas=3, total_errors=0
# 导出 PDF
soffice --headless --convert-to pdf 销售表.xlsx
# → 生成 销售表.pdf,B5=360, C5=300, B6=1.20 ✅
下一步: 需要更详细的 API 参数或管道细节时,浏览下方的「快速开始:选对管道」和
references/目录。
| # | 增强 | 解决的问题 | 来源 |
|---|---|---|---|
| 1 | XLSX 公式真重算:创建/编辑含公式后调用 scripts/recalc.py,用 LibreOffice 无头真正计算并写回 <v> 值 |
v1.5.0 只写公式字符串、不重算,非 Excel 工具/程序读回值为空 | skills-office-v1 |
| 2 | PPTX 视觉 QA:转 JPEG + 子代理检查重叠/溢出/低对比度 | v1.5.0 无版式校验 | skills-office-v1 |
| 3 | PDF 全能力:OCR(pytesseract)/表单(pypdf)/合并拆分/生成(reportlab) |
v1.5.0 PDF 仅读文本、无 OCR | skills-office-v1 |
| 4 | →PDF 双引擎:Windows COM(Office/WPS) 与 LibreOffice 无头并存,自动择优 | v1.5.0 仅 Windows COM | 两者融合 |
| 5 | 保留前身全部工程化优势:编辑自动备份 .bak、version_check.py、诚实测试记录、anti-patterns.md、troubleshooting.md、docx_format.py(GB/T 9704)、模板骨架、四管道路由 |
— | v1.5.0 前身 |
用户一句话通常对应四条管道之一。先判断意图,再进对应 references/*:
| 用户意图(示例说法) | 管道 | 入口 |
|---|---|---|
| “提取 / 读取 / 转文字 / 看内容” + pdf/docx/xlsx/pptx | READ | references/read.md |
| “生成 / 做个 / 写一份” + ppt/docx/xlsx | CREATE | references/create.md |
| “转成 pdf / 导出 csv/json/txt” | CONVERT | references/convert.md |
| “修改 / 改 / 编辑 / 更新 / 替换” 已有文件 | EDIT | references/edit.md、references/docx_edit.md |
管道不叠加:一个任务通常只走一条主管道。如「做表 → 重算 → 转 PDF」是 CREATE 起步、完成后接 CONVERT,仍按主意图选 CREATE。
用户说“编辑/修改/更新”时,先按文件格式选入口,不要死记模块名:
| 我要编辑的文件 | 入口 | 核心函数 | 一句话说明 |
|---|---|---|---|
| 已有 XLSX(改单元格、公式、插删行列) | references/edit.md |
edit_cell / edit_cells / insert_row / delete_col |
openpyxl 纯本地,自动 .bak 备份 |
| 已有 DOCX(文本替换、段落样式) | references/docx_edit.md |
edit_docx_text |
stdlib 零依赖,自动 .bak 备份 |
| 已有 PPTX | 暂未提供,建议先 READ 提取 → CREATE 重建 | — | 走 references/create.md PPTX 创建 |
记忆口诀:Excel 找 edit.md,Word 找 docx_edit.md,不用理解四个模块的完整划分。
端到端示例(一句话需求 → 落地):
- 用户:「帮我把这份 Word 转成 PDF」
→ CONVERT:soffice --headless --convert-to pdf 文档.docx(Windows 可走 office_to_pdf COM)
- 用户:「做个带公式的销售表」
→ CREATE:create_xlsx(...)(含 SUM/IF)→ 收尾 python scripts/recalc.py 销售表.xlsx 真重算
- 用户:「提取这个扫描 PDF 的文字」
→ READ:先 pdftotext;若为空 → OCR(pytesseract + pdf2image,见 read.md 扫描件 OCR 段)
- 用户:「把表里 B2 改成 100」
→ EDIT:openpyxl 改单元格 → 自动 .bak 备份
把 CREATE → recalc → CONVERT 串成一条完整链路,覆盖复杂场景。下面以「生成带公式的销售表,算出合计/达成率,再导出 PDF」为例。
① CREATE — 生成带公式的工作表
from openpyxl import Workbook
wb = Workbook(); ws = wb.active
ws.append(["地区", "销售额", "目标"])
ws.append(["华东", 120, 100])
ws.append(["华北", 90, 100])
ws.append(["华南", 150, 100])
ws.append(["合计", "=SUM(B2:B4)", "=SUM(C2:C4)"]) # 公式字符串,尚未计算
ws.append(["达成率", "=IF(C5>0, B5/C5, 0)", ""]) # 公式字符串
wb.save("销售表.xlsx")
② RECALC(关键)— LibreOffice 无头真重算
create_xlsx 只写入公式字符串,非 Excel 程序读到的是空值。必须由 recalc.py 调用 LibreOffice 真正计算并写回数值:
python scripts/recalc.py 销售表.xlsx
# 重算后:B5=360, C5=300, B6=1.20(达成率)
③ CONVERT — 转 PDF
soffice --headless --convert-to pdf 销售表.xlsx # 跨平台兜底
# Windows 高保真走 COM:python scripts/com_probe.py(探测可用后调用 office_to_pdf)
④ QA(可选)— 核对落盘值
pdftotext 销售表.pdf - | grep -E "360|300|120%"
# 命中即证明公式已真重算并写入 PDF
要点:
recalc.py是含公式 XLSX 的强制收尾步骤,否则下游读到空值。批量同理——每张表生成后都走一遍recalc.py。
把藏在代码里的限制显式列出,避免误用:
python3(标准库)。soffice):XLSX 公式真重算(recalc.py)、PPTX 视觉 QA、跨平台 →PDF 兜底转换。com_probe.py 探测);macOS/Linux 不支持。chi_sim:PDF 扫描件 OCR。read_only / write_only 模式或分工作表处理。ValueError 或自动拆批,而不是默默执行。python3;要全功能 → 装 LibreOffice + 下列 pip 依赖。pip install python-pptx openpyxl python-docx pypdf pdfplumber reportlab pytesseract pdf2image
# 系统侧:LibreOffice、Poppler(pdftotext/pdftoppm)、Tesseract(+chi_sim)、qpdf/pdftk(可选)
遇到报错时先查下表,大部分问题可秒定位:
| 报错 | 最可能原因 | 立即解决 |
|---|---|---|
文件不存在: xxx |
路径错误 | 使用绝对路径重试 |
未检测到可用的 Office COM 引擎 |
没装 WPS/Office | 安装 WPS Office 或 Microsoft Office 后重启 |
转换失败(已重试 3 次) |
文件被占用 / 路径含特殊字符 / 过大 | 关闭文件、移除 #&% 等特殊字符、拆分到 <100MB |
文件过大 (XXMB),超过 100MB 限制 |
超过硬边界 | 拆分文档后分批处理 |
| 读取 PDF 输出为空 | 扫描件或加密 PDF | 走 OCR(pytesseract)或先解密 |
| XLSX 公式读到空值 | 未走 recalc.py 真重算 |
python scripts/recalc.py 文件.xlsx |
| WPS/Office 进程残留 | 异常退出未释放 | 转换脚本内置自动清理,仍残留则 taskkill(见 troubleshooting.md) |
| 不知道环境缺什么依赖 | 缺少二进制 / Python 库 | 运行 python scripts/env_check.py 一键诊断,按提示安装 |
| 批量转 PDF 要手动处理 | 缺少批量自动化入口 | 使用 python scripts/batch_convert.py <目录或通配符> [输出目录],自动上限 / 进度 / 失败汇总 |
完整排查流程见
references/troubleshooting.md。运行前推荐先跑python scripts/env_check.py确认环境。
office360 将批量与特殊环境的处理从"手工建议"变成脚本级自动化,降低用户手动调整成本:
batch_convert.py 对批量转换做 100 文件 / 500MB 总计 / 100MB 单文件 / 300 秒超时 自动拦截;超限时直接给出结构化错误,不会无限卡死。env_check.py 在运行前检查 Python 库、系统二进制、Windows COM 状态,并给出安装命令,避免报错后翻文档。recalc.py、docx_edit.py、batch_convert.py 出错时统一返回 {error, suggestion},明确"为什么失败"和"下一步怎么做"。office360 是离线批处理工具箱,专注「文件进、文件出」的批量读写 / 创建 / 转换 / 编辑。 - ✅ 覆盖 PDF(读取 / 抽取 / OCR / 表单 / 合并拆分 / 生成) - ✅ 跨平台:读取/创建/编辑功能仅需 Python,macOS / Linux / Windows 均可运行 - ✅ 零外部服务依赖:纯 Python,无需常驻任何编辑器进程 - ✅ 批处理 / 自动化:适合「把 N 个文件批量转换 / 抽取 / 改」的脚本活 - ✅ 离线编辑已有 XLSX/DOCX:改单元格/公式/行列插删(自动备份原文件) - ✅ XLSX 公式真重算:LibreOffice 无头计算,导出文件自带计算值 - ✅ PPTX 视觉 QA:自动检测版式问题 - ❌ 不做实时协作编辑:不打开你正看的文档做所见即所得修改 - ❌ 不接入在线文档:不直接读写云端协作文档
| 功能 | Windows + WPS/MSO | macOS / Linux |
|---|---|---|
| 读取 PDF/DOCX/PPTX/XLSX | ✅ | ✅(仅需 Python) |
| 创建 DOCX/XLSX | ✅ | ✅(stdlib / openpyxl) |
| 创建 PPTX | ✅ python-pptx | ✅ python-pptx |
| XLSX 公式真重算 | ✅ LibreOffice 无头 | ✅ LibreOffice 无头 |
| 转换 →PDF | ✅ COM(Office/WPS) 优先,回退 LibreOffice | ✅ LibreOffice 无头 |
| 视觉 QA(PPTX→图) | ✅ LibreOffice | ✅ LibreOffice |
| 转换 XLSX→CSV/JSON | ✅ | ✅(stdlib) |
依赖说明:只要装了
libreoffice,macOS/Linux 即可获得公式重算 + PDF 转换 + 视觉 QA;Windows 若装有 Office/WPS 则 COM 转 PDF 保真度更佳,否则同样走 LibreOffice。
| 管道 | 用户意图 | 触发词 | 加载 |
|---|---|---|---|
| READ 读取 | 打开/查看/阅读 PDF/DOCX/PPTX/XLSX | "打开""看看""读取""查看" | references/read.md |
| CREATE 创建 | 新建/生成/写出 DOCX/XLSX/PPTX | "新建""创建""生成""做一个" | references/create.md |
| CONVERT 转换 | 格式转换 →PDF/→CSV/→JSON/→TXT | "转换""导出""另存为""转PDF" | references/convert.md |
| EDIT 编辑 | 修改已有 XLSX/DOCX:XLSX改单元格/公式/行列插删;DOCX改文本/段落(备份原文件) | "修改""改""编辑""更新单元格""插入行""删除列""替换文本" | XLSX→references/edit.md;DOCX→references/docx_edit.md |
加载规则: 只读取用户当前任务对应的参考文件,不要全部加载。一次只走一个管道。
遇到错误? 加载
references/troubleshooting.md查看错误码对照表和常见问题解答。 想避开常见坑? 加载references/anti-patterns.md查看「不该怎么做」的反模式清单。 第一次用? 加载references/workflow.md查看 3 个完整端到端流程演示。
| 格式 | 读取 | 创建(stdlib) | 创建(库) | 公式 | 公式真重算 | 视觉QA | 样式 | 编辑已有 | 转换出 |
|---|---|---|---|---|---|---|---|---|---|
| ✅ pdftotext | ❌ | reportlab/fpdf2 + OCR(pytesseract) | — | — | — | — | 表单(pypdf) | →TXT/→DOCX | |
| DOCX | ✅ unzip+XML | ✅ 已验证 | python-docx + GB/T 9704(docx_format.py) |
— | — | — | ✅ | ✅ stdlib(备份) | →PDF(COM/LibreOffice) |
| PPTX | ✅ unzip+XML | ❌ 结构复杂 | python-pptx ✅ | — | — | ✅ 子代理 | ✅ | — | →PDF(COM/LibreOffice) |
| XLSX | ✅ unzip+XML | ✅ 已验证 | openpyxl ✅ | ✅ SUM/AVG/IF等 | ✅ recalc.py |
— | ✅ 13位财务色系 | 编辑已有✅(openpyxl,备份) | →CSV/→JSON/→PDF |
状态图例:
✅ 已验证= 已通过验证;—= 不适用;❌= 不支持。
python3 3.11+libreoffice(或 soffice):XLSX 公式真重算、PPTX 视觉 QA、PDF 跨平台转换兜底pdftotext(PDF 文本提取;macOS 可用 brew install poppler,Linux apt install poppler-utils)openpyxl==3.1.5、python-pptx==1.0.2、pypdf、pdfplumber、reportlab、pytesseract、pdf2image、python-docxpywin32==312 + 已安装 Microsoft Office 或 WPS Office 专业版(office_to_pdf() 自动探测引擎)零依赖读取:即使不装 LibreOffice/Office,仅用 Python stdlib 也可读取全部四种格式(
read.md)与创建基础 XLSX/DOCX、XLSX→CSV/JSON。
Python 3.13+ ElementTree 命名空间 Bug(已验证)
ElementTree.iter('{namespace}tag')在 Python 3.13+ 对 OOXML 命名空间处理不稳定,可能返回空结果。 所有 XML 解析必须使用tag.endswith('}localname')方式匹配(见read.md/create.md实现)。
背景:create_xlsx / edit_cell 写入的是 <f>公式</f><v></v>(值留空)。Excel/WPS 打开时会计算,但被 openpyxl(非 data_only)或 stdlib 读回时 <v> 为空——程序化下游会拿到空值。v2 统一在创建/编辑后调用重算,让文件自带计算值。
用法(创建或编辑含公式的 XLSX 后必做):
python scripts/recalc.py <file.xlsx>
RecalculateAndSave(calculateAll → store → close)。#VALUE! #DIV/0! #REF! #NAME? #NULL! #NUM! #N/A。status(success/errors_found)、total_errors、error_summary、total_formulas。recalc,迭代至零错误。无 LibreOffice 的回退:若环境无 libreoffice,改用 scripts/formula_check.py <file.xlsx> 做静态错误扫描(#REF! 等),并明确告知用户「公式值需由 Excel/WPS 打开时计算」。此回退不写回 <v>。
CREATE 管道收尾:
create_xlsx(...)后若无 LibreOffice 会警告;建议始终python scripts/recalc.py 输出.xlsx收尾。 EDIT 管道收尾:改了公式的单元格后同样调用recalc.py(已自动.bak备份,可放心重算)。
创建 PPTX 后,转换为图片做视觉检查,自动发现版式问题:
# 1) PPTX → PDF(LibreOffice 无头)
soffice --headless --convert-to pdf presentation.pptx
# 2) PDF → JPEG(每页一张)
pdftoppm -jpeg -r 150 presentation.pdf slide
# 生成 slide-1.jpg, slide-2.jpg ...
随后用子代理(subagent)逐张检查:占位符文本未替换、元素重叠、文本溢出、低对比度、字体未生效。发现问题 → 回到 create_pptx 修正 → 重新 QA。
PPTX 设计指引(避免通用 AI 丑版式):
- 配色:每套演示固定 1 主色 + 1 辅色 + 中性灰,全篇统一(勿每页随机色)。
- 布局:优先「标题 + 要点列表」「双栏」「图标行」「半幅图」四类,避免满屏文字。
- 字体:中文用 微软雅黑/思源黑体;英文用 Arial/Calibri;标题 28–40pt,正文 18–24pt。
- 留白:正文框边距 ≥0.5 英寸,单页要点 ≤6 条。
- 一致性:同层级标题/正文字号、颜色必须一致。
加载 references/read.md 与下方要点:
pdftotext 拿不到文字时,用 pytesseract + pdf2image(PDF→图片→识别):
python
from pdf2image import convert_from_path
import pytesseract
pages = convert_from_path('scan.pdf', dpi=300)
text = '\n'.join(pytesseract.image_to_string(p, lang='chi_sim+eng') for p in pages)pypdf(PdfReader/PdfWriter)+ pdftk + qpdf。reportlab(程序化排版)或 weasyprint(HTML→PDF)。pypdf 读取/填写 AcroForm 字段(复杂表单建议先 pdf2image 转图人工核对字段坐标)。pdfplumber(保留表格结构)或 pdftotext -layout。references/convert.md 的 office_to_pdf() 实现:
- Windows:优先 Microsoft Office COM(保真度高),WPS 候选失败自动优雅回退 MSO(_detect_engine() 真实 Dispatch 探测,取首个可用 ProgID)。
- 跨平台 / 无 Office:改用 LibreOffice 无头:
bash
soffice --headless --convert-to pdf --outdir <outdir> <file>
- 决策规则:有 Office/WPS 且需最高保真 → COM;否则 → LibreOffice。两者输出均为标准 PDF,可继续走 PPTX 视觉 QA 或 PDF 文本提取。
references/read.md(PDF pdftotext;DOCX/XLSX/PPTX unzip+XML stdlib,零依赖;PDF 扫描件见上文 OCR)。references/create.md(create_xlsx 模板骨架+13 财务色系+多 Sheet;create_docx stdlib/python-docx;create_pptx python-pptx)。XLSX 含公式须收尾 recalc.py;PPTX 须收尾视觉 QA。references/convert.md(XLSX→CSV/JSON stdlib;PDF→TXT;DOCX/PPTX/XLSX→PDF 双引擎;PDF→DOCX 两步法;MD/HTML/IMG→PDF)。references/edit.md(openpyxl 改单元格/公式/插删行列,默认 .bak 备份,改公式后 recalc.py);DOCX 见 references/docx_edit.md(stdlib 文本/段落替换,自动 .bak 备份)。标注说明:【自动】 = 自动化用例;【人工】 = 需在本机用 WPS/Office 打开验证。 v2 在 v1.5.0 基础上新增/变更:
| ID | 测试项 | 类型 | 结果 |
|---|---|---|---|
| T01-T07 | XLSX 创建:公式/13 财务色系/跨表引用/IF转义/兼容旧格式/关键假设黄底/宋体 | 【自动】 | ✅ PASS |
| T08 | XLSX 读取回环 | 【自动】 | ✅ PASS |
| T09 | DOCX 读取 | 【自动】 | ✅ PASS |
| T10 | PPTX 读取 | 【自动】 | ✅ PASS |
| C01-C02 | XLSX→CSV/JSON | 【自动】 | ✅ PASS |
| R01 | XLSX 公式真重算(recalc.py 调 LibreOffice 写回 <v>) |
【自动】 | ✅ 需本机有 libreoffice |
| Q01 | PPTX 视觉 QA(soffice→pdftoppm→子代理) | 【人工】 | ✅ 需本机有 libreoffice |
| P01 | PDF OCR(pytesseract + pdf2image) | 【人工】 | ✅ 需 tesseract 引擎 |
| C04-C06 | DOCX/PPTX/XLSX→PDF(COM 自动化,WPS/MSO 双引擎) | 【人工】 | ✅ 已验证 |
| E01-E02 | 编辑已有 XLSX(改单元格/行列插删) | 【自动】 | ✅ PASS |
诚实边界:
recalc.py/ 视觉 QA / PDF 跨平台转换依赖libreoffice;COM 转 PDF 依赖 Windows + Office/WPS。发布包不含测试文件,用户装到的版本不含测试。
pdftotext + create_docx。宋体/微软雅黑 + charset=134(推荐 openpyxl 避坑)。libreoffice。| 格式 | 舒适范围 | 极限边界 | 瓶颈 |
|---|---|---|---|
| 500MB+ | ~2GB | pdftotext 是 C 程序,几乎无上限 | |
| DOCX | ~10MB | ~30MB | ElementTree 内存 ≈ XML ×5-10 |
| XLSX | ~5MB / ~2万行 | ~15MB / ~6.5万行 | 超 2 万行建议 openpyxl read_only |
| PPTX | ~50MB / ~200页 | ~100MB | 每 slide XML 较小 |
| 重算/QA/转换 | 取决于 LibreOffice | ~100MB+ | LibreOffice 调用超时 |
| 版本 | 日期 | 变更 |
|---|---|---|
| 2.0.0 | 2026-07-20 | 融合重构:① 植入 XLSX 公式真重算 recalc.py(LibreOffice 无头,修复 v1.5.0「公式不重算」硬伤);② 新增 PPTX 视觉 QA(soffice→pdftoppm→子代理);③ 新增 PDF 全能力(OCR pytesseract/表单 pypdf/合并拆分/生成 reportlab);④ →PDF 转为 COM(Win) 与 LibreOffice 双引擎择优;⑤ 依赖声明新增 libreoffice(推荐)、pypdf/pdfplumber/reportlab/pytesseract/pdf2image/python-docx;⑥ 保留前身全部工程化(备份/version_check.py/诚实测试/anti-patterns/troubleshooting/docx_format.py GB/T 9704/模板骨架/四管道路由) |
references/read.md — 四种格式读取(含 PDF OCR 提示)references/create.md — 创建 XLSX/DOCX/PPTX(含公式与 13 财务色系;XLSX 收尾重算)references/convert.md — 转换(XLSX→CSV/JSON、→PDF 双引擎、PDF→TXT/DOCX、MD/HTML/IMG→PDF)references/edit.md — 编辑已有 XLSX(openpyxl,自动备份)references/docx_edit.md — 编辑已有 DOCX(stdlib,自动备份)references/anti-patterns.md — 反模式清单references/troubleshooting.md — 排错与错误码references/workflow.md — 3 个端到端流程scripts/recalc.py — XLSX 公式真重算 + 错误扫描(LibreOffice),返回结构化错误与建议scripts/formula_check.py — XLSX 公式静态错误扫描(无 LibreOffice 回退)scripts/com_probe.py — Windows COM 引擎自检scripts/env_check.py — 环境依赖一键诊断(Python 库 / 系统二进制 / COM 状态)scripts/batch_convert.py — 批量 Office → PDF 自动转换(硬边界 / 进度 / 重试 / 失败汇总)scripts/docx_edit.py / scripts/docx_format.py — DOCX 编辑与 GB/T 9704 排版scripts/version_check.py — 版本一致性校验templates/minimal_docx / templates/minimal_xlsx — 预验证骨架这个 Skill 质量不错,功能覆盖面广,能处理 PDF、Word、Excel、PPT 四种格式的读取、创建、转换和编辑。文档非常贴心,提供了详细的避坑指南和故障排查手册,环境检查脚本能一键诊断缺失依赖。公式重算和双引擎转换等关键功能都有实现,适合需要批量处理 Office 文件的用户。主要小遗憾是 PPT 格式暂不支持直接编辑,需要重建文件。总体推荐。