KNIME相关视频教程,请移步B站,搜索“星汉长空”,多谢支持!
背景:我们可以使用KNIME的Excel Reader节点来读取Excel文件中的数据。由于历史原因,企业内部、各个部门之间、甚至组员之间建立了大量的Excel模板,它们的格式不尽相同,如何依据一些参数条件,有效读取Excel文件局部区域的数据,是我们日常工作当中经常要面临的一个问题。
方案:首先对各种Excel模板文件的关键数据区域范围加以整理,建立索引文件,然后在使用的时候,首先查询索引文件(这样的索引文件可以共享、维护、拓展,作为读取范围的线索使用。),根据其参数条件,建立Excel数据读取范围的变量,将变量值传递到Excel Reader节点当中,完成Excel局部区域数据的获取。
步骤1. 如图所示,在KNIME中加入Excel Reader节点,读入任意的Excel文件。如图中左下角所示,该Excel模板文件当中的数据格式是依据人的阅读习惯建立的,并不能有效地为机器所直接读取,表头的部分有一些读取障碍。
步骤2. 打开Excel Reader节点的配置界面,我们可以看到很多的配置条件,比如Excel的路径,工作簿的名称都是可以灵活设置的。其中在Sheet area框中就有关于读取范围的设置功能。如图中所示,columns from * to * 以及 rows from * to *,其中*的位置,就可以通过直接输入的方式来形成局部读取的范围。
(小技巧:在填写*的时候可以留空,留空之后,KNIME会根据Excel里面的内容范围,自动读取到最后一行或者最后一列。)
步骤3. 读取索引文件,获取当前Excel模板局部数据区域的范围情况,范围信息来源可能很多,仅以索引文件为例。这里主要是获取图中的列上下限G和B,还有行的下限4(行的上限留空,读到最后一行),至于信息的来源,可以自行设计。
步骤4. 将行列上下限参数信息转化为变量,打开Excel Reader节点的Flow Variables标签页,在read_from_column变量右侧的下拉菜单中选择列下限变量(值为B),同理为read_to_column,read_from_row,read_to_row(如果有设置的情况,本例可以不设置,默认读到最后一行。)进行变量选择,然后单击OK,关闭Excel Reader节点配置对话框。
步骤5. 执行工作流并观察读取的表格,如图中右下角的表格所示,已经按照参数设置条件,读取了Excel文件局部区域的数据。
解释1. 何为KNIME?KNIME数据分析平台是一款强大开源的数据挖掘软件平台,可以固化数据处理的流程,在人与人,人与机器之间进行传递。
解释2. 示例中的列名读取貌似不完整。是的,这里主要介绍Excel文件的局部区域数据的获取方法,实际面临的情况可能是异常复杂的。本例当中,由于Excel格式不规范,列名的来源在两行之上,需要更为精细的一些KNIME节点处理,这里就不再赘述了,并不是本贴需要重点讲述的内容。如果读者有兴趣,可以在读取之后,作为练习,自行加以处理。KNIME的节点功能十分丰富,只要信息不缺失,都可以进行进一步的加工,将数据加工成数据框的形式,为后面的进一步分析,汇总创造条件。