Excel 数据体检
何时使用
- 用户准备交付
.xlsx/.xlsm,担心重复、空值、公式错误 - 用户要“数据体检”“交表前检查”“找异常值”
- 用户需要在批量报表发出前做统一质量检查
不适用于:
- 判断业务口径是否正确
- 修改原始数据;本 Skill 只读检查,不写回
- 处理
.xls旧格式;先转换为.xlsx
执行步骤
- 先跑体检:
python scripts/check_xlsx.py \
--file "待交表.xlsx" \
--out "xlsx_check.json" \
--md "xlsx_check.md"
- 如果表头不在第一行,显式指定:
python scripts/check_xlsx.py --file "待交表.xlsx" --header-row 2 --out "xlsx_check.json"
- 作为交付闸门时加
--strict:存在 high 问题时退出码为 1。
python scripts/check_xlsx.py --file "待交表.xlsx" --out "xlsx_check.json" --strict
- 先处理 high 问题,再人工确认 low 的统计离群值。
检查能力
- 重复表头、空表头
- 整行重复数据
- 数据区空单元格比例
- 公式数量和公式错误值
- 数字被存成文本
- 数值列统计离群值,使用 IQR 规则
- 合并单元格数量、隐藏工作表
- 每个工作表的行数、列数、空行数
输出约定
{
"file": "待交表.xlsx",
"ok": false,
"issue_counts": {"high": 2, "medium": 1, "low": 0},
"sheets": [
{"sheet": "Sheet1", "rows": 320, "columns": 8, "duplicate_rows": 2, "formula_errors": 1}
],
"heuristic_score": 72
}
--md 生成适合直接发给用户的中文报告。
能力边界
- 只检查
.xlsx/.xlsm;.xls先另存为.xlsx - 不执行公式,不判断公式业务逻辑是否正确
- 统计离群值只是提示,可能是真实大额订单,不能自动删除
- 不读取外部链接、宏或受密码保护的工作簿
- 数据默认在本机处理,不上传第三方
失败回退
openpyxl缺失:安装requirements.txt- 公式结果为空:文件可能没有缓存计算值,先在 Excel 中重算并保存
- 表头识别错误:使用
--header-row指定 - 合并单元格导致空值:先取消合并或按业务补全,再重跑