用途
document-xlsx 是一个针对 XLSX 工作簿自动化的智能体技能,来源于 vasilyu1983/ai-agents-public。它聚焦于 Excel 文件的专业处理任务,而非通用的单元格编辑。根据其快速参考,该技能适用于以下专业方向:原生图表、数据透视表、数据验证与条件格式;Office Scripts、Microsoft Graph 与 xlwings 自动化;超大型(write_only/read_only)文件处理;不可信工作簿的审计与消毒。
边界与优先项
技能明确规定了一条边界:当官方 Anthropic xlsx 技能可用时,以下场景应优先使用官方技能:普通创建/编辑、公式优先的财务模型、LibreOffice 重算(recalc.py)以及公式错误扫描。本技能仅用于其上述专业方向。
主要能力
- 运行时决策:先判断运行环境属于本地文件生成、云端工作簿自动化(Microsoft 365)、桌面 Excel 自动化,还是审计与消毒。
- 表优先导出:推荐表头单行、命名 Excel 表、冻结表头行与有界范围。使用 XlsxWriter 时,表格自带自动筛选,若对同一范围另加 autofilter 会触发 OverlappingRange。
- 原生数据透视表:openpyxl 与 XlsxWriter 无法创建,需使用 Office Scripts(Microsoft 365)或 xlwings(桌面 Excel);无头导出场景则写入预先计算好的汇总表。
- 不可信工作簿处理:使用 keep_links=False 与 keep_vba=False 加载,并在任何操作前运行 scripts/xlsx_audit.py。技能声明自身从不编写或执行宏。
- 大文件处理:安装 lxml 并使用 Workbook(write_only=True) / load_workbook(read_only=True) 进行流式读写;write-only 工作簿只能保存一次(WorkbookAlreadySaved)。
- 格式上限:每个工作表 1,048,576 行 × 16,384 列,由文件格式决定,需提前决定分页或多工作表布局。
使用方式
技能提供脚本及退出码约定:
python3 scripts/xlsx_audit.py workbook.xlsx --format md(门禁,0 表示无阻断发现,1 表示存在阻断项,2 表示文件缺失或非工作簿)python3 scripts/xlsx_audit.py workbook.xlsx --report-only(清单,无效输入仍退出 2)python3 scripts/xlsx_sanitize.py in.xlsx out.xlsx --strip-external-linkspython3 scripts/xlsx_export_report.py data.csv report.xlsx --title "Sales"python3 scripts/test_xlsx_sanitize.py
核心操作示例包括基于 XlsxWriter 的表优先导出(含 add_table 返回负值需手动抛错的说明)以及基于 openpyxl 的安全编辑(强调不得用 data_only=True 加载后再保存,否则公式会被缓存值替换)。
适用场景
本地报表生成、Microsoft 365 云端工作簿自动化、桌面 Excel 功能调用、超大文件导出、分享前工作簿审计与文本/链接清理、以及可重复的 CSV/JSON/Parquet 到 xlsx 的导出。
限制与注意事项
- XlsxWriter 为只写模式,无法打开或编辑已有 xlsx;编辑任务应改用 openpyxl 或 Node 环境下的 ExcelJS。
- 库只写入公式,计算由计算引擎完成;openpyxl 不计算公式,XlsxWriter 通常写入占位缓存 0 并请求重算。非空缓存不能作为计算证据。
- 库默认配置可能失败开放,需显式设置:如显式设置验证错误提示与 errorStyle="stop";XlsxWriter 默认会把以 = 开头的字符串转为公式,除非关闭 strings_to_formulas。
- Google Sheets 与 LibreOffice 不保留所有 Excel 特性,需在目标查看器中验证数据透视表、动态数组公式、保护与高级格式。
- 数据验证是 UI 元数据,粘贴可能绕过或替换单元格规则,需与保护及代码内检查结合。
- 工作表与工作簿保护密码仅为威慑,不是加密;敏感数据应使用文件级加密或平台访问控制。
- pandas.read_excel() 不会呈现条件格式、验证、保护或图表;审计需要时应直接读取 OOXML 部分或使用 openpyxl。
- 库行为随版本变化,依赖某个默认值前需针对已安装版本重新测试。
- 审计为静态检查,无法证明公式计算正确;需定义计算契约,并在有具名计算引擎重算后检查缓存结果与错误单元格(#REF!、#VALUE!、#DIV/0!、#NAME?、#N/A);无计算引擎时应将公式结果标记为未验证并提供独立计算的控制总数。
参考与资产
技能附带 references/ 下的公式、表格结构化引用、图表、格式、数据验证、数据透视表、安全保护、云自动化、无障碍合规、提取栈等文档,assets/ 下的财务报告、数据仪表板与模型审查清单,以及 data/sources.json 供应商与标准链接。相关技能包括 document-pdf、ai-ml-data-science、data-sql-optimization。
学习循环
若存在 learnings.consolidated.md 且此前决策或坑点相关,可查阅;仅需历史或作为可用回退时使用 learnings.md,否则跳过。应用后若遇到值得记忆的模式、需预防的错误或意外的领域事实,通过 agents-skills-feedback-loop/scripts/append_learning.py 向 learnings.md 追加一条带日期的项目,不修改 SKILL.md 本身。