编辑 | blame | 历史 | 原始文档

市州月报格式差异报告

  • 探测日期:2026-09-17
  • 探测范围:docs/投资/输入/客运(客运站)/7月(10 个文件)、docs/投资/输入/物流(物流园区)/7月(17 个文件),另含 6 张目标表、1 个投资系统项目表
  • 探测工具:docs/投资/工具/格式探测.py(xlrd / openpyxl 只读打开,**不改动任何源文件**)
  • 对应需求文档:《投资月报数据处理与多表更新需求说明(最终汇总版)》第九节确认事项 D

一、总体结论(先看这一段)

  1. 好消息:27 个市州月报中有 20 个直接使用省统一模板,列位与目标明细表**完全一致**,可以按列位稳定解析;差异只集中在 7 个文件上。
  2. 风险集中:真正的解析风险是 4 类——
  • ① 数据不在第一个工作表里(随州在 Sheet2;林区/潜江/襄阳必须按工作表选月份);
  • ② 同一工作表里混着别的市州或历史数据(十堰物流表里前半段是「武汉」2013—2016 年的历史项目);
  • ③ 列位右移 1 列(襄阳客运 .et 多出「建设规模」列);
  • ④ 「建设阶段 / 形象进度」没有分成两列(恩施、黄石物流表合并成一列;太原汉口南山的简表没有建设阶段列)。
  1. 不能按工作表名称取数:林区 林区物流投资月报2026.07.24.xlsx 里 7 月数据在名为 2026.7 的工作表,但同一文件里 Sheet1 装的是 3 月、Sheet4 装的是 5 月;潜江 潜江2026.07.xlsx 里 7 月数据竟在名为 潜江传化2022.3 的工作表(表头日期 2026.07.22),其余 24 张表全是 2018—2021 年的历史数据。
    → 必须用「表头区日期」判定月份,工作表名只能当参考。
  2. 客运 7 月只有 10 个市州报了文件(缺 黄石、鄂州、随州、天门、潜江、仙桃、荆州;武汉只报了「南山、汉口站」两个项目),物流 17 个市州齐全。程序不能因为「少文件」就报错,要按市州清单对账并提示缺失。

二、标准列位(省统一模板,20 个文件适用)

字段 列 表头文字(各市州写法)
序号 A 序 号
项目名称 B 项目名称及站级 / 项目名称及战级 / 项目名称
投资建设单位名称 C 投资建设单位名称 / 项目业主
建设性质 D 建设性质
开工时间 E 开工时间 / 开工年
竣工时间 F 竣工时间 / 竣工时间 / 建成时间
总投资 G 总投资(万元) / 计划总投资(万元)
自开始建设累计完成投资 H 自开始建设累计完成投资(万元)
本年计划投资 I 本年计划投资(万元)
自年初累计完成投资 J 自年初累计完成投资(万元)/ 合计
其中:本月完成投资 K 其中:本月完成投资 / 本月完成投资(万元)/ 本月 / 当月完成投资(万元)
项目建设阶段 L 项目建设阶段、进度情况(合并表头下左列,子表头「建设阶段」)
形象进度 M 形象进度(合并表头下右列,部分文件子表头缺失)
工可 / 初设 S / T 项目前期工作批复文件(各文件有 ±1 列偏移)

粗体 = 我们真正要取的数字段(明细表要更新的 5 列)。

目标明细表的列位(与标准列位一致)

目标表 工作表 项目名称 自开始建设累计 自年初累计 其中本月完成 建设阶段 形象进度 数据起始行
模板_X月客运站投资明细表.xlsx 明细 B H J K L M 12
模板_X月物流站场投资明细.xls 分项目投资完成情况 B H J K L M 12

三、逐文件格式对照(2026 年 7 月)

3.1 客运(10 个文件)

市州 文件 数据工作表 表头行 数据行 列位是否标准 差异说明
孝感 (孝感市道运中心)202607孝感市道路客运站场投资统计月报表.xls Sheet1 4—9 12—14 ✅ 标准 —
恩施 2026湖北省道路客运站场投资统计报7月(恩施州).xls 1 3—8 10—15 ✅ 标准 表头整体上移 1 行;工作簿另有 4 张**隐藏**空表(SIMZNE / YESWAQ / BVSWOQ / SPRRQW,均 0 行×0 列,无内容)
林区 2026年7月林区道路客运站场投资统计报表(月、年报).xls 月1 4—9 13 ✅ 标准 项目仅 1 行;另有空模板表「月2」和 1 张**隐藏空表** VOOQTNP(0 行×0 列)
黄冈 2026年7月省站场投资表(黄冈) -.xlsx 月 4—9 12—23 ✅ 标准 used range 到 1020 行(尾部大量空白/残留格式);B 列表头里混着「合计」二字;文件名含空格和连字符
咸宁 2026年7月咸宁市客运站场投资统计月报表(1)省表(1).xls 月报表 4—9 14—24 ✅ 标准 尾部多 1 列(工可在 T、初设在 U);文件名带 (1)(1) 后缀;**另有 1 张隐藏工作表 RQYQRYQS(26 行×3 列纯文本,内容是宏病毒残留,如 "Classic.Poppy by Vic" / "Infect Workbook",非数据表)——程序只能按表头字段命中选表,绝不能遍历所有工作表**
武汉(南山、汉口) 2026年7月站场固投(南山、汉口站).xlsx Sheet1 3 6—7 ❌ 简表 B 名称 / C 单位 / D 性质 / E 建设时间(开工+竣工合并) / F 计划总投资 / G 至上年底完成投资 / H 自开始建设累计 / I 本年计划投资 / J 合计(自年初累计) / K 本月完成 / L 截止目前建设进展(无「建设阶段」列)
宜昌 湖北省宜昌市道路客运站场投资报表(月、年报)07月.xls 客运站月报 4—5 7—13 ✅ 标准 表头仅 2 行;工可在 Q、初设在 R
荆门 荆门市客运站场投资统计7月.xls.xls 表1 4—9 11—13 ✅ 标准 双扩展名 .xls.xls
十堰 十堰市2026年7月固定资产月报电子版投资表格.xlsx Sheet1 4—8 12—15 ✅ 标准 F 列表头写作「建成时间」;4 个项目行中有 2 行**没有序号**(竹山高速客运站、竹山客运中心站);**Sheet1 第 5 行被隐藏,但 18 列全空,不影响取数**
襄阳 襄阳市道路运输服务中心2026年6月投资 (1).et 2026年7月 4—6、9 12—18 ⚠️ 右移 1 列(不处理) WPS .et 格式;文件名写「6月」但内容是 7 月;工作簿内有 2026年1月—2026年7月 共 7 张分月表,必须按工作表选月;**D 列多出「建设规模(站级和项目类型)」**,导致 建设性质=E、开工=F、竣工=G、总投资=H、自开始建设累计=**I**、本年计划=**J**、自年初累计=**K**、本月完成=**L**、建设阶段=**M**、形象进度=**N**;**【2026-09-17 用户口径】列位右移不做特殊处理:程序按表头文字定位列,只取本次要更新的字段**

3.2 物流(17 个文件)

市州 文件 数据工作表 表头行 数据行 列位是否标准 差异说明
黄冈 202607---黄冈物流站场投资表(最终版).xls 分项目投资完成情况(黄冈) 4、6、8、9 16—27 ✅ 标准 —
恩施 2026年7月恩施州物流(货运)项目投资明细 .xls 分项目投资完成情况 5 11—16 ⚠️ 部分 K 表头为「本月完成投资(万元)」(无「其中:」);L/M 合并为一列「项目建设阶段、进度情况」。**【2026-09-17 用户口径】上市州其实已分列、只是表头没写;我方不更新「建设阶段」列 → 此问题关闭**
黄石 2026年7月份物流(货运)投资项目明细表(黄石市) (2).xls Sheet1 3—4 9—18(8 个项目行) ⚠️ 部分 第 10 行是隐藏行,但它是一条真实项目行「阳新县焦山物流仓储中心」(无序号,计划总投资 7,940.69 万,自开始建设累计/自年初累计/本月完成均为 0),且**已计入第 5 行「黄石」市州合计**(计划总投资 564,991.69 / 自开始建设累计 59,500.20 / 自年初累计 34,978.15 / 本月完成 7,088.90)→ 必须取,绝不能用「隐藏行」当过滤条件;第 20 行起是签字栏与「地区/大冶/阳新/新港园区/黄石港区」行,解析时必须排除。L 列是「完成百分比」(如 0.6912…),没有「建设阶段」列
孝感 2026年7月份孝感物流项目投资统计表.xls 分项目投资完成情况 5—6 11—18 ✅ 标准 M(形象进度)子表头缺失,列位仍与标准一致;第 7 行是「孝感」市州汇总行
襄阳 2026年7月湖北省襄阳市交通物流基础设施投资统计报表 (1).xls Sheet1 3—4 6—17 ✅ 标准 B 列表头是「项目名称」(无「及站级」)
鄂州 2026年7月企业月报汇总(鄂州).xls Sheet1 5—10 13—15 ✅ 标准 表头是 3 行合并结构且错位(I5「自年初累计完成投资(万元)」横跨 I:L),**解析必须按第 6/7 行的列位取值,不能按合并表头**
随州 2026年7月物流基础设施建设投资月报(随州) (1).xls Sheet2 3—4 5—6 ⚠️ 部分 数据不在第一个工作表(首表「月2」是空模板);**没有序号列**:A=项目名称及站级、B=空列、C=投资建设单位;K 列名「当月完成投资(万元)」
天门 7月份物流园中心建设项目 (天门).xlsx Sheet1 5—10 13 ✅ 标准 同鄂州的多行合并错位表头
武汉 报表—武汉七月.xls 明细 5—10 15—20 ✅ 标准 —
十堰 湖北省十堰交通物流基础设施投资统计汇总表(月报)(2026年7月).xls 分项目投资完成情况 5—10 70—76(7 个项目行) ⚠️ 高风险 全表 88 行,**第 11—63 行(53 行)被设为隐藏行**,内容是「武汉」市州区块(高桥货运站、蓝焰物流基地等 2013—2016 年历史项目 + 其小计/合计);第 64 行才是市州行「十堰」,第 70—76 行是十堰的 7 个项目。Excel 里看不到这些行,**但程序读单元格读得到**,不按市州切段就会把武汉的历史项目算进十堰(原探测 38 行,加入市州分段后已修正为 7 行)。**必须按市州行切段,只取十堰段**
宜昌 湖北宜昌市物流基础设施投资统计报表(月、年报)07月.xls 物流月报 4—5 6—18 ✅ 标准 表头仅 2 行
荆门 荆门2026年07月项目投资总报表(物流).xls 分项目投资完成情况 3—4 9—17 ⚠️ 轻微 J 列表头写作「年初累计完成投资(万元)」(**少一个「自」字**)
荆州 荆州物流投资(2026年7月报省) .xls 2607月分项目投资完成情况 5—10 19—29 ✅ 标准 行内含「小计」行,需排除
林区 林区物流投资月报2026.07.24.xlsx 2026.7(表头日期 2026.07.24) 5—10 15 ✅ 标准 45 张工作表:19 张可见(2024.10—2026.7 的按月表)、26 张被隐藏(潜江传化 2018—2022 历史月表 + Sheet2/Sheet3 空表);可见表里 Sheet1=2026.03、Sheet4=2026.05,表名不可靠 → 按表头日期选表,隐藏与否不作为判定依据
潜江 潜江2026.07.xlsx 潜江传化2022.3(表头日期 2026.07.22) 5—10 15 ✅ 标准 27 张工作表:只有 1 张可见,即 潜江传化2022.3(表头日期 2026.07.22,本期数据);其余 26 张(潜江传化 2018—2022 历史月表)**全部被隐藏**。工作表名与实际月份严重不符 → 必须按**表头日期**选表,不能靠表名或"看得见/看不见";**该表只有 1 个项目行,疑似漏报,需人工核实**
仙桃 仙桃市物流园投资统计报表(202607).xls 1 4、5、6、8、9、14 12—13 ✅ 标准 H 列表头区残留日期「2026.7.24」;项目仅 2 行
咸宁 咸宁市2026年7月份物流(货运)项目投资明细 (1).xls 分项目投资完成情况 4—5 10—18 ⚠️ 轻微 K 列表头只有「本月」二字;**表内标题误写为「2026年6月」**(内容为 7 月);第 6 行是「咸宁」市州汇总行

物流侧隐藏项:**孝感 / 恩施 / 随州 / 咸宁 / 武汉 / 荆门** 6 个文件各多出 1 张**隐藏**的「月2」空模板表(32 行×24 列)。
这些空模板只在"遍历全部工作表"时才会被误取;按「表头日期 + 字段命中」选表即不受影响。完整清单见 docs\投资\输出\隐藏数据核实清单_2026-07.md。


四、差异清单(按风险分级)

高风险(会导致取错数 / 算错数,必须专门处理)

# 市州 / 文件 问题 建议处置
H1 十堰物流 第 11—63 行是**隐藏行**,内容是「武汉」历史区块(2013—2016 年项目 + 小计/合计)——**不是**同一个可见区块里混排;Excel 打开看不见,程序读单元格读得到 以「首 5 列里只有一个单元格是市州名、同行其余为空」的行作为**分段标志**,只取本市州段;解析后做**分段校验**(项目数、合计值与该段「小计/合计」行比对),不一致即弹窗。已实现:探测结果由 38 行修正为 7 行
H2 潜江 / 林区 潜江 26/27 张表、林区 26/45 张表被**隐藏**;可见表名与实际月份不符(潜江可见表名 潜江传化2022.3,实为 2026 年 7 月数据) 按**表头区日期**(如 2026.07.22 / 2026.07.24)判定月份并选表;**"隐藏/可见"不作为判定依据**;找不到当期表即弹窗报「未找到 X 月数据表」
H3 襄阳客运 .et 格式 + 列位整体右移 1 列 + 文件名月份与实际不符 用 Excel COM 打开 .et;按**表头文字定位列**(不写死列号)后按名称取值;用工作表内日期核对月份。**【2026-09-17 用户口径】不做特殊处理,只取本次要更新的字段**
H4 本项目所有源文件 数据区把「市州行 / 分类行(一、二、三、四)/ 小计行 / 合计行 / 空行」和项目行混排 统一的「项目行判定」规则:A 列为整数序号(或随州式无序号)+ B(或 A)列项目名称非空 + 名称不含「小计/合计/一、/二、/三、/四、」;同时把 市州行、小计行 收集为**校验用对照组**

| H5 | 本项目所有源文件 | 「隐藏」不等于「不是数据」(黄石物流隐藏行 R10 是真实项目行,且已计入市州合计);反之「可见」也不等于「是本期数据」(潜江/林区/林区的可见表名与实际月份不符) | 禁止把"隐藏行 / 隐藏工作表"当作过滤条件。取数判定只用三条:① 表头日期选表;② 市州行切段;③ 项目行判定(序号/名称/数值锚点)|

中风险(会造成少取/漏取,但不至于取错数)

# 市州 问题 建议处置
~~M1~~ ~~恩施物流、黄石物流~~ 【2026-09-17 关闭】 用户口径:恩施、黄石其实已经分列,只是表头没写;且**我方不更新「建设阶段」列** → 不处理,问题关闭 —
M2 武汉(南山、汉口)客运 简表布局:无开工/竣工分列、无建设阶段列,L 列是「截止目前建设进展」 单独一条映射规则;建设阶段留空,形象进度取 L 列;项目名称为「汉口客运中心」「武汉南(山坡)客运枢纽站」两个,需确认是否与明细表存量项目同名
M3 鄂州、天门物流 3 行合并表头错位(I5「自年初累计完成投资」横跨 I:L) 解析时固定用**第 6 行(子表头行)**取列位,忽略第 5 行的合并大表头
M4 随州物流 数据在 Sheet2、无序号列 遍历工作表找「含表头关键字段 + 有数据行」的表;项目名称列 A
M5 黄冈客运、黄冈物流、孝感物流、荆州物流、仙桃物流 数据区含小计/合计行、尾部大量空白行、used range 虚高(黄冈客运到 1020 行) 按项目行判定规则过滤;不要用 used range 作为行数依据

低风险(只影响表头文字,不影响取数)

  • 荆门物流 J 列表头少「自」字;咸宁物流 K 列表头只有「本月」;咸宁物流标题误写 6 月;十堰客运 F 列写「建成时间」;孝感物流 M 列子表头缺失;仙桃物流 H 列表头残留日期;文件名带 (1)、(2)、空格、连字符(黄冈客运 -.xlsx)、双扩展名(荆门客运 .xls.xls)。
  • 开工/竣工时间写法不统一:2024、2024.0、2023.01、2023.10;序号写法不统一:1、1.0、"1"。
  • 文件格式三种:.xls(最多)、.xlsx、.et(襄阳客运)。

五、给程序实现的建议(供拍板)

  1. 列位不要写死:按「字段名 → 列」的方式,在表头区(前 12 行 × 前 30 列)做**关键字匹配**定位列,再回退到标准列位。本次探测已确认关键字匹配可覆盖全部 27 个文件。
  2. 月份不要靠文件名/工作表名:优先用表头区日期格判定;判不出来再用文件名中的 6 位 YYYYMM;再判不出来才用「含数据的最后一张表」并且**必须弹窗确认**。
  3. 分段解析:把工作表按「市州行 / 分类行 / 小计行 / 合计行」切成段,只取目标市州段的项目行;用「小计/合计」行与项目行求和做**内部一致性校验**(不一致 → 弹窗 + 记日志)。
  4. 市州清单对账:程序内置 17 市州清单,对缺失文件、缺失数据表逐个提示(本次客运缺 7 个市州文件)。
  5. 读文件优先 Excel COM(.et 只能 COM/WPS 读;.xls 用 COM 也能拿到公式结果),xlrd/openpyxl 仅用于**格式探测**这类只读场景。
  6. 不要用「隐藏行 / 隐藏工作表」做过滤:黄石物流的隐藏行 R10 是真实项目行(阳新县焦山物流仓储中心,已计入黄石市州合计);潜江/林区的可见表名反而是历史表名。判定只用「表头日期选表 + 市州行切段 + 项目行判定」三条。

六、待确认问题(需要您拍板)

  1. ~~**恩施物流、黄石物流**的「建设阶段 / 形象进度」合并列……~~ 【2026-09-17 已关闭】 用户:恩施、黄石其实已分列(只是表头没写),且我方不更新「建设阶段」列。
  2. 武汉(南山、汉口)客运简表的「建设阶段」没有对应列,是否同样留空?
  3. 潜江物流 7 月只有 1 个项目行(潜江传化公路港),是否漏报?(该文件里 2026 年数据被写进了名为「潜江传化2022.3」的工作表)
  4. 汇总表(2026年全省预安排计划进度情况汇总)里没有「其中:本月完成投资」这一列(现有列为 I=自开始建设累计、W=1-7月累计完成投资、X=实际进度),需求文档里写的 4 项指标与模板列对不上,第 ③ 项「本月完成投资」应落在哪一列?
  5. 《亿元投资项目》(规上项目表)里没有「自开始建设累计完成投资」和「自年初累计完成投资」列(现有列为 截至2025年年底实际完成投资 + 2026年各月实际/计划完成投资),需求文档里的「更新 3 项」与模板列对不上,请确认映射。
  6. 客运缺 7 个市州文件(黄石、鄂州、随州、天门、潜江、仙桃、荆州):是本期确实没有项目,还是漏报?程序遇到缺失应「跳过 + 提示」还是「报错中止」?

(本报告由 docs/投资/工具/格式探测.py 对 2026 年 7 月源文件实测生成,结论可直接用同一脚本对其他月份复跑。)


七、更正记录(2026-09-17)

本报告初版(2026-09-17 上午)对「十堰 / 潜江 / 林区 / 黄石 / 恩施」几处的措辞不准确,用户打开文件核对后反馈"没有这个情况",复核后更正如下(**只改措辞与口径,数据结论不变**):

# 初版写法(不准确) 更正后(准确)
1 十堰物流"同一工作表里混着两个市州区块" 十堰物流第 11—63 行是隐藏行,内容是武汉历史区块;第 64 行才是市州行「十堰」。用户在 Excel 里看不见,是正常的
2 潜江 / 林区"工作表名与实际月份不符" 潜江 26/27 张表、林区 26/45 张表被**隐藏**;可见表只剩 1 张(潜江)/19 张(林区)。程序按表头日期选表,与表名无关
3 襄阳客运"整表右移 1 列" 按用户口径**不做处理**;程序按表头文字定位列,只取要更新的字段
4 恩施 / 黄石物流"建设阶段与形象进度未分列" 用户:已分列,只是表头没写;且**不更新建设阶段列** → 问题关闭
5 黄石物流"8 个项目行中有 1 行没有序号(金山口物流园项目)" 该行是**隐藏行** R10,正确名称为**阳新县焦山物流仓储中心**,且**必须取**(已计入黄石市州合计)
6 格式探测脚本未做市州分段 已加入**市州分段**(CITIES + city_segments()):十堰物流由 38 个项目行修正为 7 行;复跑确认其余 26 个文件结果不变

另外,隐藏项完整清单(哪个文件、哪张表、哪几行、隐藏内容是什么、怎么自己取消隐藏验证)见 docs\投资\输出\隐藏数据核实清单_2026-07.md。

(本报告由 docs/投资/工具/格式探测.py 对 2026 年 7 月源文件实测生成,结论可直接用同一脚本对其他月份复跑。)