# 市州月报填报口径与统一模板(2026-09-20) > 起因:用户提问「他们导入的数据按哪个格式来最好?要不要生成两个模板(客运站一个、物流园一个)? > 这几个表的更新其实很简单——按项目名称更新汇总表指定指标、新增项目就新增到明细表, > 预安排汇总表和明细表方式一样,剩下三张表项目固定只更新指标——为什么现在弄得有点复杂了?」 ## 一、结论先说 1. **你的心智模型是对的**,而且就是需求文档《投资月报数据处理与多表更新需求说明》里写的三步: - Step1 月报 → 两张明细表:以**项目名称**为键,已有→更新 5 列,没有→新增整行; - Step2 明细表 → 全省预安排计划进度情况汇总:同名更新 4 项,没有的新增,母版有而月报没有的保持原值; - Step3 明细表 → 三张固定项目表(十五五规划物流 / 亿元投资项目 / 经济强县):项目清单不动,只更新 3 项指标。 2. **复杂不在「表」,在「源」**。程序侧要处理的麻烦全部来自市州报上来的原始表格格式不统一,不来自汇总规则本身。 3. **建议从 9 月起统一用两份模板**(客运站场、物流园区各一份)。模板已经做好: - `docs/投资/模板/模板_市州月报_客运站场.xlsx` - `docs/投资/模板/模板_市州月报_物流园区.xlsx` ## 二、两份模板长什么样 只有一个数据页「月报」+ 一个「填报说明」页。第 4 行是表头,一行一条项目,共 17 列: | 列 | 表头 | 程序里的去向 | | --- | --- | --- | | A | 序号 | 仅用于识别市州小节行/合计行,不参与匹配 | | B | 县(市、区) | 项目主档 `county`(全省汇总表要显示这一列) | | C | **项目名称及站级** | **匹配键**(市州 + 类别 + 项目名称) | | D | 投资建设单位名称 | 主档 `builder_name` | | E | 建设性质 | 主档 `construct_nature`(下拉:新建/续建/改扩建/改建) | | F | 开工年 | 主档 `start_time` | | G | 竣工年 | 主档 `end_time` | | H | 计划总投资(万元) | 主档 `total_investment` | | I | 自开始建设累计完成投资(万元) | **当期月度数** | | J | 本年计划投资(万元) | **当期月度数** | | K | 自年初累计完成投资(万元) | **当期月度数** | | L | 其中:本月完成投资(万元) | **当期月度数** | | M | 建设阶段 | **当期月度数** | | N | 形象进度 | **当期月度数** | | O | 工可批复文号 | 主档 `approval_gk` | | P | 初设/施工图批复文号 | 主档 `approval_cs` | | Q | 备注 | 不取数 | - **主档列(A、B、D、E、F、G、H、O、P)**:第一次建档时写入,之后只要项目名不变就不动; - **月度数(I、J、K、L、M、N)**:每个月报多少写多少,同一(项目,报表期)覆盖式重建; - **「项目名称及站级」是唯一匹配键**:改一个字 = 新建一个项目,所以要求与批复名称一字不差; - 「填报说明」页写了 11 条要求(一份文件只放本市州、文件名带市州名、数值不带字符、 县(市、区)必填、建设性质只能四选一、新增项目直接加行、隐藏行不放数据、合计行可不填等)。 ## 三、为什么现在感觉复杂(4 个真实原因,都在输入侧) 1. **版式不统一**:27 份市州月报里,20 份与省统一模板一致,7 份有差异—— 随州多一个 Sheet2、神农架/潜江/襄阳拆成多个分月页签、襄阳整体右移 1 列、 恩施/黄石合并表头、武汉(南山/汉口)只报两个项目的简表。详见 `docs/投资/输出/市州月报格式差异报告_2026-07.md`。程序为了读全,只能一个版式一个兜底分支。 2. **一个文件里混多个市州**:《湖北省十堰交通物流基础设施投资统计汇总表(月报)》一个页签收了全省, 2026 年 8 月这份 38 行里只有 **7 行是十堰**,另外 **27 行武汉 + 4 行黄石**。 程序支持按「小节行」切换市州(这是有意做的功能),所以能读进来,但代价是: **只要重导 8 月物流,这 31 个项目就会重新建到武汉/黄石名下**(今天做回归重导时复现,已再次清除,见测试报告 P3)。 3. **项目清单有两个来源**:一是市州当月报上来的,二是母版/库里已经有的(如预安排母版里的武汉物流行)。 于是产生「有总投资、没有本期月度数」的项目,要不要补进小计/合计就成了要单独决策的事。 4. **列位置靠兜底**:早期实现按「自年初累计 = 自开始建设累计 + 2 列」这类列序推算, 市州一挪列就得再加一条兜底——这是「猜」出来的复杂度,不是业务复杂度。 ## 四、换成统一模板后,还要定死 3 件事 模板解决的是「怎么读」。下面 3 件事定下来,整条链就没有歧义了: | # | 待定事项 | 建议 | | --- | --- | --- | | 1 | 年度项目清单以谁为准?库里有什么就出什么,还是以「年度预安排计划表」为准? | 以年度预安排计划表为准(随母版下发或单独建一张《年度预安排计划》表),每月只更新指标 | | 2 | 某市州当月**没报**怎么办? | 该市州指标留空 + 导出前弹窗列出「未报送市州」,不阻断导出 | | 3 | 市州**新增**的项目插到哪? | 插到该市州「预安排计划内」小节末尾;计划外的单独标注,导向上仍出但明显区别于计划内 | ## 五、过渡安排与下一步 - **8 月及以前**:已按旧格式导入完毕,程序继续兼容旧版式,**不改、不重导**(8 月十堰源文件清理另行确认)。 - **9 月起**:市州按统一模板填报;建议再加一个「模板体检」——导入时校验表头是否为本模板 17 列, 是则走「按表头取数」的直路,不是则**弹窗提示**(哪一列对不上),而不是继续猜列位置。 - 这样解析逻辑可以退化成「按表头名取值」,现有那些容错兜底分支可以逐步下线,复杂度自然就降下来了。