首页 › 文档中心 › 用户指南
用户指南
Excel 多表合并:整个目录的月度报表一次读进来(附五个常见坑)
2026年9月9日 更新:2026年9月15日 zonef_admin ⏱ 约 41 分钟阅读

Excel 多表合并:用一条工作流读完整个目录,并处理国内报表的五个坑

Excel 多表合并,指把结构相同的多个 Excel 文件或工作表纵向追加成一张表,是财务、审计和运营岗位每月的固定工作。本文讲怎么把它做成一条可以反复运行的工作流:新文件放进目录,执行一次即可;同时逐个处理国内报表里常见的五个坑,最后说明什么情况下用 Excel 自带的 Power Query 就够了。

关键事实内容
合并方向本文讲纵向追加(合并后行数变多);横向关联(列数变多)用 Joiner 节点,不在本文展开
列结构一致时Excel Reader 节点的文件夹模式,一个节点读入并追加整个目录,不需要循环
需要循环的情形各文件表头行位置不同、要读取一个工作簿里的全部工作表、各文件需要分别处理
列不一致时读取时可选并集或交集;同义列名需另行统一
追溯来源勾选追加文件路径列,数据出错时可定位到具体文件
Excel 行数上限xlsx 每个工作表 1,048,576 行,xls 每个工作表 65,536 行
运行环境Windows,以及 x86-64 版本的麒麟 V10/V11、统信 UOS。iModel 目前不支持 ARM 架构(鲲鹏、飞腾),相关版本仍在规划中。
内核基线iModel 基于 KNIME 开源内核二次开发,当前基线为 KNIME 5.2;文中节点均用英文原名
核实日期2026 年 9 月 15 日

Excel 多表合并,先分清纵向还是横向

动手之前先想清楚方向,方向错了后面的步骤都要返工。这两种情况在中文里都叫「合并」,用的节点却完全不同。判断方法只有一句:合并之后行数变多是纵向,列数变多是横向。

你的情况属于用什么
十二个月度文件,列结构一样,要摞成一张纵向追加Excel Reader 文件夹模式
各分公司报的表,格式一致,要汇总到一起纵向追加Excel Reader 文件夹模式
一个工作簿里十二个工作表,结构相同纵向追加循环读取各工作表
已经读进来的两三张表,要接在一起纵向追加Concatenate
主表缺部门名称,要从对照表补上横向关联Joiner

横向关联在 数据分析教程第五讲 里有完整演示,本文只讲纵向追加;已经读进来的几张表直接接在一起,见 Concatenate 节点说明。

Excel 多表合并:一个节点读完整个目录

最省事的做法不是一个个选文件,而是让读取节点直接读整个文件夹。KNIME 内核较早的版本需要用循环逐个读取,现在的读取节点已经内置多文件读取,列结构一致时不需要循环。下个月把新文件放进同一个目录,流程本身不用改。

与合并有关的四项读取设置

设置项怎么设
读取模式选「文件夹中的文件」(Files in folder),指向目录,可按扩展名筛选
表头行指定列名所在的行号,前面的说明行就不会被当成表头
多文件列组合各文件列不完全一致时,选并集(Union)或交集(Intersection)
来源文件列在高级设置中勾选追加文件路径列

工作表选择、列改名与类型转换等其余设置,以及批量读取的逐步截图说明,已在知识库的 批量读取文件夹中的 Excel 与 Excel Reader 节点说明 里讲过,这里不重复。

一定要保留来源文件列。合成一张大表以后,如果发现某几行数据不对,没有这一列就无从判断它来自哪个分公司、哪个月份。勾选一下几乎没有成本,出问题时能直接定位到文件;手工复制粘贴时,很少有人会逐行补上这一列。
运行前先关闭目录里所有正在打开的 Excel 文件。文件打开时,Excel 会在同一目录生成以 ~$ 开头的临时文件,扩展名同样是 xlsx,容易被一起读进来导致报错。

固定目录加文件夹模式、每月替换文件重跑,这套做法在 教程第八讲 里有从头到尾的演示;读取节点的基础用法见 第三讲。

什么时候还需要循环

文件夹模式要求各文件按同样的设置读取。遇到下面三种情况,就要改用循环,逐个文件或逐个工作表处理:

  • 各文件的表头行位置不同:有的表头在第 3 行,有的在第 5 行,无法用同一个行号读取。
  • 要读一个工作簿里的全部工作表:先用 Read Excel Sheet Names 列出工作表名称,再循环读取。
  • 每个文件需要不同的处理:比如各分公司的列名写法不同,要在追加之前分别改名。
节点在循环里的作用
List Files/Folders列出目录里的全部文件路径
Table Row To Variable Loop Start把每一行路径变成一次循环
Excel Reader读取路径改由流程变量控制,每轮读一个文件
Loop End把每一轮的结果纵向摞起来

流程变量怎样把路径传给读取节点,见 流程变量概念词条。

国内报表的五个坑

上面的流程在规整的数据上跑得很顺,但实际收上来的表常常没那么规整,下面五种情况通常会碰到其中几种。

坑一:表头不在第一行

很多报表前面有两三行说明:单位名称、报表期间、编制人。直接读进来,字段名就成了「某某公司 2026 年 8 月费用明细表」。

各文件说明行数相同时,在 Excel Reader 里指定列名所在行即可。行数各不相同时,要么改用循环逐个设置,要么把说明行一并读进来之后,用 Row Filter 删掉。

坑二:合并单元格

部门列做了纵向合并,在 Excel 里看起来整整齐齐,读进来之后只有每组第一行有值,下面全是缺失值。这个坑最容易被忽略,因为在 Excel 里完全看不出问题。

用 Missing Value 节点,把该列的处理方式设为「用上一个值填充」(Previous Value)。这一步要在分组汇总之前做,否则汇总会漏掉一批数据。另外要注意,如果某个文件的第一行本身就是空的,填充时会误用上一个文件最后一行的值,填充后建议按来源文件列抽查每个文件的第一行。

坑三:明细里混着小计行

「小计」「合计」「本月累计」这类行夹在明细中间,直接汇总会被重复计算,金额成倍放大。

用 Row Filter 剔除包含这些关键词的行。稳妥的做法是先统计这类行有多少条、分布在哪里,确认规则不会误伤真实数据,有的部门名称里本身就带「合计」二字。

坑四:各家列名不一致

同一个字段,有的写「金额」,有的写「金额(元)」,还有的写「发生额」。文件夹模式选并集时,这三种写法会变成三列,每列只有一部分文件有值;用 Concatenate 接表时默认也是如此。

写法只有两三种时,读入后用 Column Merger 把同义的两列合成一列。写法很多时,建一张「原列名、标准列名」对照表,在循环里用 Insert Column Header 按对照表逐个文件改名,再追加。

坑五:数字被存成文本

金额列在 Excel 里无法求和,读进来是字符串类型。常见原因是原表带了千分位逗号、货币符号,或者系统导出时夹带了不可见字符。

纯数字的文本,可以直接在 Excel Reader 的转换标签里把类型改为数值。带逗号或符号的,先用 String Replacer 去掉,再用 String to Number 节点 转换。转换后要检查缺失值有没有增加:转不成数字的值会变成缺失值,那些正是需要人工确认的脏数据。

处理顺序建议:先拿到正确的表头,再统一列名(循环方式在追加前做,文件夹模式在读入后立即做),然后补合并单元格、剔除小计行,最后转换类型。顺序颠倒会增加工作量,例如先剔除小计行再补合并单元格,被删掉的行可能正好是某组唯一有值的那一行。

什么时候 Excel 自己就够了

不是所有情况都值得搭一条流程。Excel 自带的 Power Query 通过「从文件夹」获取数据,同样可以合并整个目录并一键刷新。判断标准不是能不能合并,而是这件事的频率、复杂度和交接方式。

情况建议
只做一次,三五个文件,结构一致手工复制粘贴即可,不必搭流程
每月都做,团队熟悉 ExcelPower Query 从文件夹合并,不必另装软件
合并后还要多步清洗、跨表关联、汇总两者都能做;Power Query 在「应用的步骤」里逐步回看,工作流在画布上逐个节点查看中间结果,按团队习惯选
结果要交给别人复核或接手两者都能交接:Power Query 的查询保存在工作簿里,对方有 Excel 即可打开;工作流需要对方安装同一软件,但步骤以节点图呈现,适合步骤较多的流程
合并后超过 1,048,576 行Power Query 需加载到数据模型而不是工作表;工作流处理过程不受工作表行数限制,但写回 Excel 时同样受限

工作表行数上限以微软官方的 Excel 规格与限制说明 为准。

合并之后做什么

把多个文件合成一张表只是开头,接下来通常还要补字段、按维度汇总、写回 Excel。站上的教程按这个顺序分讲:

没有固定上限,实际受电脑内存约束。文件夹模式会把所有文件读成一张表;文件很多或单个文件很大时,可以在转换标签里只保留需要的列,减少内存占用。
按并集合并时,不同写法会变成不同的列,每列只有一部分文件有值。写法少时用 Column Merger 合并同义列;写法多时建一张列名对照表,在循环中逐个文件改名后再追加。
用 Missing Value 节点把该列设为用上一个值填充即可还原。合并单元格读取后只有第一行有值,其余是缺失值;这一步要在分组汇总之前完成。
先用 Read Excel Sheet Names 节点列出全部工作表名称,再用循环逐个读取,由 Loop End 纵向合并。建议同时记录每行数据来自哪个工作表,便于核查。
团队熟悉 Excel、流程步骤不多时,Power Query 足够用,而且不必另装软件。合并后还有多步清洗、关联和汇总,或者数据量超过工作表行数上限时,工作流按节点查看中间结果、处理过程不受工作表行数限制,更容易维护。
拿手上的一批月度表试一次
建议先用两三个文件验证读取设置,确认来源列和列名都对,再放入整批数据。软件可免费下载,支持 Windows,以及 x86-64 版本的麒麟 V10/V11、统信 UOS。
先看数据读取教程免费下载
遇到节点报错或设置看不懂?可以先查 KNIME 中文知识库。

这篇文档对您有帮助吗?

相关文档

iModel 专属客服
在线留言或电话联系
在线留言

留下您的问题和联系方式,我们会在一个工作日内回复。

手机与邮箱至少填一项

4008568196 拨打此号码联系我们

微信扫码咨询

iModel 微信咨询二维码

使用微信扫描上方二维码