从 Excel 到 iModel · 第 6 章(终)

自动生成 Excel 报表:把结果发回 Excel

自动生成 Excel 报表,是这个系列的最后一步,也是很多人一开始没想到还需要的一步 – 处理完数据之后,收件人要的往往还是一个 xlsx 文件。这一章讲三种输出方式,以及怎么保住原来的排版格式。

自动生成 Excel 报表,指的是让工作流在跑完之后直接产出一个 xlsx 文件,不需要人工复制粘贴。iModel 提供三种方式:新建一个文件、往已有文件里追加工作表、或者只更新已有文件中特定单元格的内容。

第三种是本章的重点 – 它能让你保住 Excel 模板里辛苦做好的排版和公式。

这个问题通常是这样被描述的

「流程都跑通了,数字也对,可导出来的 xlsx 是光秃秃一张表 – 没有公司抬头,没有配色,没有边框。我原来那个模板做得挺好看的,每次改数字就行。现在难道要我每个月手工往模板里贴一次?」

不用。这正是第三种输出方式要解决的问题。

但在讲它之前,先把三种方式各自适合什么说清楚。

关键事实

新建 Excel 文件Excel Writer
追加工作表Excel Writer,写入选项选追加
更新已有单元格Excel Cell Updater
导出 CSVCSV Writer
默认输出样式无格式的朴素表格:无配色、无边框、无列宽调整
能否保留原模板格式能,用 Excel Cell Updater 只更新数据区
一次写多个工作表可以,Excel Writer 支持多个输入端口,每个对应一个工作表
常见搭配Column Filter(只输出需要的列)、Sorter(排好序再导出)

自动生成 Excel 报表:三种输出方式

方式一

新建文件

每次生成一个全新的 xlsx。最简单,也最常用。

适合:结果表是独立交付物,不需要嵌进现有报表里。

Excel Writer
方式二

追加工作表

往一个已存在的工作簿里加一个新的 sheet,原有内容不动。

适合:一个文件里按月份或按分公司分 sheet 累积。

Excel Writer · 追加
方式三

更新单元格

只改写指定位置的单元格内容,其余一切原样保留。

适合:有做好的模板,每月只换数据。

Excel Cell Updater

前两种在节点手册里有完整的参数说明,配置很直白:选路径、选文件名、选是覆盖还是追加。这里重点讲第三种。

模板法:保住你辛苦做好的排版

先说清一件事:Excel Writer 输出的是朴素表格 – 没有配色、没有边框、没有调好的列宽,字体是默认的。这不是配置问题,是它的定位就是写数据,不是做排版。

所以想要好看的报表,正确做法不是让工作流去画格式,而是让 Excel 继续负责它擅长的那部分

模板文件(做一次)
公司抬头 · 报表标题
门店数量金额
   
   
合计(公式)  
只更新
数据区
每月生成的成品
公司抬头 · 报表标题
门店数量金额
S001504200
S002605100
合计(公式)1109300

橙色是模板里固定不动的部分(抬头、表头、公式、配色);青色是工作流每月写进去的数据。

图 1 模板法。格式做一次,之后每月只换数据区的内容。

具体怎么做

  • 在 Excel 里做好模板:抬头、表头、配色、边框、列宽,以及合计行的公式。数据区留空。
  • 把模板另存一份作为「母版」,每月流程从母版复制一份出来再更新,这样母版永远干净。
  • 工作流末尾用 Excel Cell Updater,指定要写入的单元格地址和对应的值。
  • 执行。打开生成的文件,格式全在,数据是新的,合计公式自动重算。
为什么这个方案好

它把两件事分给了各自擅长的工具。数据处理的准确性和可复现性交给工作流,视觉呈现交给 Excel。谁都没被强迫做自己不擅长的事。

而且模板是可以交接的:接手的人打开模板就知道这张报表长什么样、哪些格子是自动填的。

关于更复杂的格式化:如果需要工作流直接生成带完整样式的 Excel(条件格式、动态配色等),社区有相关扩展可以做到。这类扩展不属于核心节点,是否可用请在你自己的环境中确认。但在大多数场景下,模板法更省事也更稳 – 格式改起来在 Excel 里点几下就行,不用回去改工作流。

自动生成 Excel 报表:该用哪个

你的情况Excel 手工做工作流输出该用哪个
一次性出个数发给同事复制粘贴就行要配输出节点Excel
每月固定出同一张报表每次重新贴点执行,文件就在那iModel
有做好的模板要复用手工往模板里贴Excel Cell Updater 自动填iModel
要拆成几十个分店文件拆到手软循环批量生成iModel
报表格式经常要调整直接在 Excel 里改改模板即可,流程不动两者配合
要做复杂的图表和排版Excel 的强项需要额外扩展Excel
结果要给系统调用做不到可导出 CSV 或对接接口iModel

注意第五行写的是「两者配合」。这是全系列最想让你记住的一句话 – 到了输出这一步,最好的答案往往不是二选一。

六章走完之后

第 1 章开头说过一句话:换到 iModel 不等于不再用 Excel。走到这里,这句话应该具体了。

最终的分工
iModel 负责过程 · 需要可复现的部分
  • 读入多个来源的数据
  • 清洗、去重、筛选
  • 关联、汇总、计算
  • 每一步留痕可查
Excel 负责呈现 · 需要好看好传的部分
  • 模板与排版
  • 图表与配色
  • 打印与分发
  • 收件人熟悉的格式
不是替代,是上下游
过程交给能说清楚的那个,呈现交给做得好看的那个。

图 2 全系列的落点。这个分工比「全面替代」诚实,也更容易在团队里推行。

回到第 1 章的论点

AI 让算出一个数变得很容易,但说清楚这个数怎么来的反而更难了。工作流的价值不在于算得快,在于算完之后你能解释。

而 Excel 依然是那个把结果送到人手上的工具 – 这一点在可预见的将来都不会变。

接下来做什么

如果你是跟着这六章读下来的,现在建议做一件具体的事:

  • 挑一个你每月都要做、步骤最固定、最烦的活。不要挑最复杂的,挑最烦的。
  • 照着第 2 到第 6 章搭一遍。会卡住,卡住的地方就是你真正需要学的。
  • 和原来 Excel 的结果逐项比对,确认口径完全一致。这一步别省。
  • 连续跑两个月。第一个月省不了时间,第二个月才看得出差别。

两个月之后再决定要不要搬第二个。这个节奏比一口气全搬要慢,但成功率高得多。

六章回顾

常见的适应难点

难点一:导出的文件没有格式

本章重点讲的那件事。Excel Writer 写的是数据不是样式,想要格式用模板法。第一次遇到会以为是配置漏了什么,其实不是。

难点二:文件被占用,写不进去

目标 xlsx 正在 Excel 里打开着,工作流就写不进去,会报文件被占用。执行输出节点前先关掉那个文件 – 这是最高频的一个低级错误,几乎每个人都会撞一次。

难点三:数字变成了文本,或者日期变成了数字

写入 Excel 时列的类型可能和你预期的不一样,最常见的是日期显示成一串数字。在输出前用类型转换节点确认好类型,或者在模板里预先把那一列的单元格格式设成日期。

难点四:每月文件名要带日期

固定文件名会被覆盖,历史留不下来。可以在流程里生成带日期的文件名传给输出节点。做法在节点手册里有说明,属于稍进阶的用法,但一旦配好就再不用管。

常见问题

Excel Writer 的职责是写数据,不是做排版,所以输出的是无配色、无边框的朴素表格。想要格式有两条路:一是模板法 – 在 Excel 里做好带格式的模板,工作流只用 Excel Cell Updater 更新数据区,这是推荐做法;二是使用相关的社区扩展直接生成带样式的文件,这类扩展不属于核心节点,是否可用需在你的环境中确认。
会。用 Excel Cell Updater 只更新数据单元格,模板里原有的公式不受影响,打开文件时 Excel 会按新数据重算。这也是模板法相比「全部重新生成」的一个好处 – 你在 Excel 里写的那些公式不用搬到工作流里去重写一遍。
可以。Excel Writer 支持添加多个输入端口,每个端口对应一个工作表,可以分别命名。适合「一个文件、按分公司分 sheet」这类需求。要按数据内容动态拆成几十个文件则需要用到循环,属于进阶用法。
目标文件正在 Excel 里打开着。关掉它再执行即可。这是最常见的一个低级错误,如果流程是定时自动跑的,要确保运行时段没人开着那个文件,或者把输出目录和大家日常查看的目录分开。
CSV 是最常用的另一种,用 CSV Writer,适合给其他系统导入。此外也可以写入数据库,需要先配置相应的连接。具体形式取决于接收方要什么 – 如果对方是人,多半还是 Excel;如果对方是系统,CSV 或数据库更合适。
读完不算,跑通一个自己的真实活才算。建议挑一个每月都做、步骤固定、最烦的活,照第 2 到 6 章搭一遍,和原来的 Excel 结果逐项比对,连续跑两个月。之后遇到不会的节点查节点手册,遇到报错查报错排查,不需要系统学完才开始用。

相关内容

本章涉及的节点:Excel WriterCSV Writer。更多节点的中文说明在节点手册,遇到报错可查报错排查

挑一个最烦的活,搬一次试试

iModel Analytics Studio 是开源版本,免费、不限功能与使用时长。不用一次搬完,搬一个每月都做的活就够 – 第二个月你就知道值不值得继续。

下载六章合订 PDF 完整版 · 34 页,含全部图表,无需留资。

想深入了解某个节点,可以看 节点手册;系统学一遍可以从 数据分析入门教程 开始。

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

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

手机与邮箱至少填一项

4008568196 拨打此号码联系我们

微信扫码咨询

iModel 微信咨询二维码

使用微信扫描上方二维码