它解决什么问题
整条流程的最后一步。把数据表写成 Excel 文件交给人看 – 这是国内绝大多数分析流程的终点形态。
给人看的结果优先用它,不要用 CSV Writer。xlsx 自带编码信息,不存在中文乱码;能保留列类型,长编号不会被 Excel 显示成科学计数法;还能一个文件放多张工作表。CSV 留给需要跨系统导入的场合。
它在流程里的位置
前面加一个改名节点是有意的。汇总和透视之后列名会带上聚合方法,直接出报表不好看。
基本信息
| 英文原名 | Excel Writer |
|---|---|
| 中文名称 | Excel 写出器(iModel 中文界面) |
| 节点库位置 | IO → Write → Excel Writer |
| 输入端口 | 1 个数据表。拖动节点下缘可以增加,每个输入写成一张工作表 |
| 输出端口 | 无。它是流程终点 |
| 单表行数上限 | 受 Excel 格式限制,一张工作表约一百零四万行 |
配置项逐条
-
Output location输出路径
写到哪个文件。用相对路径而不是绝对路径 – 工作流换台机器跑、或者交给同事,绝对路径必然失效。
-
If file exists文件已存在时
覆盖、报错中止、或者往里追加工作表。这是最容易出事故的一项 – 选了覆盖,每月重跑会把历史结果冲掉。要留档就把月份写进文件名,让每次生成的是新文件。
-
Sheet name工作表名称
每个输入端口对应一张工作表,各自命名。名字里不能有 Excel 不允许的字符,长度也有上限。
-
Write column headers写出列名
默认写。给人看的报表当然要,写给程序读的中间文件才考虑关掉。
-
Write row ID写出行 ID
默认不写。行 ID 是 KNIME 内部用的,出现在报表里只会让人困惑。除非你确实要用它对账,否则保持关闭。
-
Autosize columns自动列宽
按内容自动调整列宽,省得收到报表的人还要手动拉。数据量很大时会拖慢写出速度。
Excel Writer 配置对话框
输出路径Output location
data/固定资产汇总_2026-09.xlsx
用相对路径。月份写进文件名就不会互相覆盖。
文件已存在时If file exists
覆盖报错中止追加工作表
选覆盖等于放弃历史结果。不确定就先选报错中止,出问题时它会拦住你。
工作表名称Sheet name
汇总表多个输入端口时逐个命名。
写出选项
写出列名写出行 ID自动列宽
三个常见坑
- 文件正被 Excel 打开着,写入失败。Windows 会锁住打开中的文件。报错信息说的是拒绝访问一类,容易被误解成权限问题。关掉 Excel 再跑即可。定时跑的流程要特别注意这一点 – 人手动打开看一眼,当晚的任务就会失败。
- 每月重跑覆盖了上个月的结果。「文件已存在时」选了覆盖,文件名又是固定的。修法是把日期写进文件名。要做成自动的,用 Table Row to Variable 把日期变成变量拼进路径。
- 报表里多出一列莫名其妙的编号。那是行 ID,「写出行 ID」被勾上了。关掉重跑。
什么时候该换别的节点
| 情况 | 换成 |
|---|---|
| 结果要给别的系统导入 | CSV Writer,编码按对方要求设 |
| 要往已有 Excel 模板的指定位置填数 | Excel Writer 做不到保留模板格式,考虑用 Continental 系列扩展节点 |
| 结果要写回数据库 | DB Writer |
| 只是想在 KNIME 里看一眼 | 不用写文件,右键节点看输出表就行 |

