返回 Skill 列表
extension
分类: 数据与分析无需 API Key

采购清单清洗助手

将杂乱的采购清单/采购订单 Excel 清洗成标准采购模板,自动识别"上方单头+下方物资明细"两层结构,回填采购订单号、供应商、合同号、日期等字段到每行明细,输出字段映射、行级错误、金额一致性提醒和复核报告。

person作者: u_d1525ce8hubenterprise

采购清单清洗助手 — Purchase List Excel Cleaner

purchase-list-excel-cleaner · v0.1.2 · 免费 MVP

把供应商、采购员、各部门提交的杂乱采购清单 / 采购订单 Excel,清洗成可审阅的统一采购模板。

它适合处理这些问题:

  • 采购单是「上方单头 + 下方明细」两层结构,单头信息没有落到每一行
  • 表头叫法不统一,例如“品名 / 物资名称”“订购数量 / 采购数量 / qty”“金额 / 小计”
  • 表头不在第一行,前面有标题、订单号、供应商、日期
  • 明细行缺物资名称、单位或数量,需要逐行指出
  • 表尾有「合计」行,混进数据里造成误判
  • 小计与「数量 × 单价」对不上,需要导入前发现

单头回填是这个工具的核心

采购单常见写法:

某公司采购订单
采购单号:CG-2026-0001        供应商    示例供应有限公司
合同编号:HT-2026-018         预计到货   2026/9/15

料号     品名     规格    计量单位  订购数量  含税单价  金额   用途
...

工具会识别上方单头区,把采购订单号、供应商、合同号、日期回填到每一条明细行, 并在报告和 Order Header 工作表中标明每个值来自第几行。

回填错了会污染整张表,所以来源必须可追溯 —— 请务必核对报告里的「单头信息与回填」一节。

若明细表本身也有同名列(例如每行一个供应商),以明细列为准,不做覆盖。


它不是什么

  • 不是采购系统
  • 不连接任何服务器
  • 不读取或写入生产数据库
  • 不下单、不审批、不建供应商档案
  • 不做财务核算、税额计算或价格合规判断
  • 不替代采购、仓管或财务复核

使用前请阅读 DISCLAIMER.md


输出内容

运行后生成:

| 文件 | 用途 | | --- | --- | | cleaned_purchase_template.xlsx | 清洗后的标准采购模板(含单头、字段映射、异常、提醒、统计工作表) | | purchase_report.md | 单头回填来源、字段映射、统计、异常行、提醒 | | errors.csv | 异常行明细,可直接发给制单人核对 |

标准列顺序:

采购订单号, 供应商, 合同号, 提单号, 申请日期, 预计到货日期, 发票日期, 计划单位, 物资编码, 物资名称, 规格型号, 单位, 采购数量, 单价, 小计, 备注

明细行必填:物资名称单位采购数量

物资编码 不作必填 —— 供应商发来的采购单通常没有你的内部编码,缺失只提醒、不拦截。


金额怎么处理

第一版对钱的态度是保守的:

  • 单价小计 只做格式清洗(去掉千分位、货币符号),并以数字类型写入,下游无需二次转换
  • 两者都有时,若 小计采购数量 × 单价 相差超过 1%,给出提醒
  • 小计 为空时留空并提醒,工具不代算金额
  • 税率、含税/未税口径、多币种:只识别并提醒,不入模板列

本地使用

cd purchase-list-excel-cleaner
python3 scripts/clean_purchase_excel.py path/to/input.xlsx --out-dir outputs

要求:

  • Python 3.9+
  • openpyxl

示例

运行内置烟测:

python3 tests/run_smoke_test.py

预期结果:

  • 生成一份两层结构的乱表样例
  • 从单头识别出订单号、供应商、合同号、预计到货日期
  • 清洗出 3 行有效数据
  • 标记 2 行异常数据
  • 跳过 1 行「合计」汇总行
  • 生成三份输出文件

设计边界

本工具借鉴真实矿山仓储系统中采购订单的字段结构,但输出文件不等于任何生产系统的直接导入格式。 该系统目前没有采购 Excel 导入接口,因此本 Skill 定位是「采购清单整理与预检」,不是「采购导入工具」。

清洗结果必须由人工确认后,才能进入任何真实采购或仓储流程。


相关 Skill

同系列的物资入库场景请用 material-inbound-excel-cleaner。两者模板和必填项不同,不要混用。

本工具不会自己判断你上传的是什么表 —— 你选了它,意图就已经确定了。

唯一例外:如果一行都清洗不出来(全部明细行都没通过必填校验),报告顶部会给一句提示,指出这份表更像入库清单、盘点表还是领料单,并在对应 Skill 已发布时给出名字。这只是提示,不会自动切换模板,也不会替你重新处理。


反馈

如发现字段误识别、单头回填错误、异常行误判或模板不适配,请反馈至:ruanchaoyin@ruancyai.com。