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

投资估算对比表生成

从两个版次的投资估算 Excel(如送审稿 vs 修编稿)生成逐项对比表,自动探测表结构与层级、逐级校验费用闭合、标注取消/新增。触发词:生成对比表、投资估算对比、送审稿与修编稿对比、估算版本对比、投资概算对比。

person作者: user_22a5aaeahubcommunity

📊 投资估算对比表生成

从两个版次的投资估算 Excel 生成逐项对比表。零写死:结构自动探测,换个项目直接跑。

它能做什么

| 能力 | 说明 | |------|------| | 结构自动探测 | Sheet、表头行、序号列、名称列、金额列、一级分组全部运行时识别 | | 合并单元格还原 | 先把合并区铺满再解析,跨行合并的模块列不会丢 | | 逐级闭合校验 | 总计 vs 分组、每级分组 vs 明细、组内小计 vs 累计,逐条列出差额 | | 四轮名称匹配 | 完全匹配 → 包含关系 → 相似度(≥0.66) → 取消/新增,不做强行配对 | | 取消/新增标注 | 取消项红底、新增项绿底,按序号插入原位而非堆在末尾 | | 柱状图 | 送审 vs 修编对比图,数据源为隐藏 Sheet |

快速开始

pip install openpyxl

# 最简
python scripts/generate.py -f1 送审稿.xlsx -f2 修编稿.xlsx

# 先看探测结果对不对
python scripts/generate.py -f1 送审稿.xlsx -f2 修编稿.xlsx --inspect

默认输出:送审稿所在目录/对比分析/投资估算对比表.xlsx

参数速查

| 参数 | 说明 | |------|------| | -f1 / -f2 | 送审稿 / 修编稿(必需) | | -o | 输出路径 | | -s / --sheet1 / --sheet2 | 指定 Sheet(名称或 0 基索引) | | -c / --config | JSON 配置,覆盖自动探测 | | --inspect | 只打印探测结果,不生成文件 | | --overall-depth | 总体表展开层数,默认 2 | | --tol-abs / --tol-rel | 闭合校验容差,默认 0.02 / 0.001 | | --no-chart | 不生成图表 | | --json / -q | JSON 输出 / 静默 |

探测不准时怎么办

不要改源码,写配置文件覆盖:

{
  "sheet": "总投资概算",
  "header_row": 3,
  "cols": {"seq": 0, "name": 1, "amount": 3, "unit": 4, "qty": 5, "price": 6}
}
python scripts/generate.py -f1 送审.xlsx -f2 修编.xlsx --config my.json

字段全部可选,列号 0 基。

输出

总体投资对比      总计 + 各层级分组(默认到第 2 层)
<各分项>          每个"直接含明细的分组"一张,数量/单价/金额三栏对比
说明              口径、匹配规则、颜色约定、完整闭合校验记录
图表数据(隐藏)   柱状图数据源

适用场景

  • 可研阶段投资估算送审稿 / 修编稿对比
  • 同一项目多轮修改稿之间的版本对比
  • 多版本投资概算的变更追踪与审计

依赖

  • Python 3.8+
  • openpyxl >= 3.1.0(唯一依赖)

故障排除

| 现象 | 原因 / 处理 | |------|------------| | 金额列读出来是空的 | 源表金额是公式且文件从未被 Excel 打开,缓存值缺失。用 Excel 打开另存一次 | | 提示某分组不闭合 | 看「说明」Sheet 的差额,再核对该分组下的明细行。常见原因:空序号续行、层级写法不统一 | | 明细被误判为取消+新增 | 改名幅度过大。相似度阈值 0.66 是保守值,调整需人工核对 | | 报 Sheet 不存在 | 用 --sheet 指定,或先 --inspect 看可用 Sheet | | 出现「名称疑似」 | 相似度兜底匹配,必须人工复核 |

版本历史

| 版本 | 说明 | |------|------| | v2.0.0 | 移除硬编码行号/列号,改为结构自动探测;闭合校验重写为三级;递归匹配修复只匹配一层的问题;新增 --config/--inspect/--json;补上柱状图;依赖瘦身为 openpyxl | | v1.2 | 优化匹配逻辑,完善 CLI | | v1.1 | 修复费用不闭合问题 | | v1.0 | 初始版本 |