Install
openclaw skills install @cxdanger123-commits/xlsx-qcopenclaw skills install @cxdanger123-commits/xlsx-qc表格最危险的地方是它不报错。
SUM 少算了几行,因为有几个数字是"文本格式的数字";筛选之后总数对不上,因为有几行被隐藏了;发给对方后一片 #REF!,因为公式引用了本地另一个文件。这些在你自己的屏幕上全都是正常的。
这个 Skill 专门查这类"静默错误"。
只问会改变结论的事:
如果对方要接着算或导入系统,那么"文本型数字""合并单元格""隐藏行列"的严重度要整体上调——这三样在下游全是事故源。如果对方只是看,它们就不算什么。
用户没说就按"对方要接着用"处理,并在结论里写明假设。
python scripts/qc_xlsx.py <文件.xlsx>
零第三方依赖,直接读 OOXML。检查:
| 代码 | 含义 | 为什么危险 |
|---|---|---|
FORMULA_ERROR | 公式错误值 | 对方第一眼就看到 #REF! |
EXTERNAL_REF | 引用外部工作簿 | 对方打开必然取不到值 |
TEXT_NUMBER | 数字存成文本 | SUM / 排序 / 透视表静默漏算 |
HIDDEN_COL HIDDEN_ROW | 隐藏的行列 | 复制、统计、对账时漏数据 |
HIDDEN_SHEET | 隐藏的工作表 | 数据在无人察觉时被带走 |
MERGED_CELLS | 合并单元格 | 排序、筛选、填充异常 |
PARSE_ERROR | 文件结构异常 | 被第三方工具改写或传输损坏 |
用户最容易感知的痛点是"数怎么不对"。不要只报单元格位置,要说出它在业务上意味着什么。
差:B17 是文本型数字
好:B17、B23、B41 是文本存储的数字(合计 8,640)。现在 B50 的 SUM 把它们漏掉了,你看到的合计比真实值少 8,640。
脚本查不出"口径对不对"。当发现以下迹象时,提问而不是断言:
问法:"这张表里 B 列是『金额』、D 列是『实收』,两者差在税费还是退款?我要确认合计该用哪一列。"
凡出现以下任一任务时主动调用,不必等对方点名:
口语化说法同样命中:帮我检查这个表格 / 公式有没有算错 / 数据能不能直接发给老板 / 表里有没有藏东西
结论:可交付 / 修完再发
【会直接报错】
1. B17 显示 #REF!。原因:公式引用了已删除的单元格。改法:重新指向正确区域。
【会让数字静默出错】
2. B17、B23、B41 是文本格式的数字(合计 8,640),当前 SUM 漏算。改法:选中该列,数据-分列-直接完成。
【对方看不到但确实存在】
3. 「内部备份」工作表被隐藏,里面有 2 行数据。如果这是故意保留,建议改为单独文件。
【需要你确认】
- 合计该用 B 列(金额)还是 D 列(实收)?
说明:以上为结构检查结果,未重算公式,读的是文件缓存值。