Excel文件采用表格的形式,数据显示直观,操作方便
Excel文件采用工作表存储数据,一个文件有多张不同名称的工作表,分别存放相同字段或不同字段的数据
数据源
物理成绩(Kettle数据集2).xls https://download.csdn.net/download/Hudas/88509178?spm=1001.2014.3001.5501
使用Ctrl+N快捷键,创建【转换1】转换工程,单击【核心对象】选项卡,展开【输入】对象,选中【Excel输入】组件,并拖曳到右边工作区中,如下图所示
双击【Excel输入】组件,弹出【Excel输入】对话框,其中显示默认的【文件】对话框,如下图所示
需要注意的是,【Excel输入】对话框下方的【预览记录】按钮是灰色的,表示不能单击该按钮
在【Excel输入】对话框中,包含组件的基础参数,以及【文件】【工作表】【内容】【错误处理】【字段】【其他输出字段】6个选项卡的参数
【文件】【工作表】【字段】选项卡的参数是必填项 (没有设置参数时,选项卡名称前面会显示"!"符号,表示是必填项,设置参数后"!"符号会消失),并且必须按照【文件】【工作表】【字段】选项卡的顺序设置,其他为可选项
【文件】选项卡参数
在【文件】选项卡参数的说明如下表所示
参数名称 | 说明 |
表格类型(引擎) | 表示Excel文件的表格类型,类型如下 |
文件或目录 |
表示要输入的Excel文件或所在的目录,可以单击【浏览】按钮获取Excel文件或目录。默认值为空 |
正则表达式 |
表示使用正则表达式,获取文件相应的Excel文件。使用正则表达式,可以动态匹配获取多个Excel文件。默认值为空 |
正则表达式(排除) | 表示排除型的正则表达式,与正则表达式相反,使用排除型的正则表达式,排除掉匹配文件,而获取不匹配的Excel文件。默认值为空 |
password |
表示读取Excel文件的密码。一些Excel文件有读取密码,因此要输入密码才能获取,默认值为空 |
文件和目录 |
表示选中的Excel文件或目录,单击【增加】按钮,读入经过浏览获取的文件和目录 |
通配符号 | 表示使用通配符号选中Excel文件或目录。配置符合通配符号规则的多个Excel文件 |
通配符号(排除) | 表示使用排除性通配符号选中Excel文件或目录。配置符合通配符号(排除)规则外的其他多个Excel文件 |
要求 | 表示配置所需的源文件的位置 |
包括子目录 | 表示是否包括子目录的文件 |
选中的文件 | 表示选中的Excel文件列表。通过单击【增加】按钮将文件或目录添加到列表中,并进行参数设置,参数有:【文件/目录】【通配符号】【通配符号(排除)】【要求】【包括子目录】等参数,有关参数的说明如下表所示。至少要有一个选中的Excel文件,默认值为空 |
从前面的步骤获取文件名 | 表示是否从前面组件(步骤)读取文件名,如果选择是,则不用本组件获取Excel文件,而是从前面步骤的组件中读取文件、并保存文件的字段名。默认值为空 |
在【文件】选项卡中,设置参数,并导入“物理成绩.xls”文件,步骤如下所示
(1) 浏览导入Excel文件
单击【浏览(B)…】按钮,在计算机上浏览并导入“物理成绩.xls”文件,如下图所示
(2) 添加并编辑Excel文件
单击【增加】按钮,将【文件或目录】输入框中的"C:\Users\HP\Desktop\物理成绩.xls"文件,添加至【选中的文件】表中,如下图所示
如果选中的文件有问题,那么单击【删除】或【编辑】按钮,即可对选中的Excel文件进行编辑。其中,单击【选中的文件】表的行号,再单击【删除】按钮,即可删除选中所在行的文件
(3) 查看被选中的文件名称
单击【显示文件名称…】按钮,弹出【文件读取】对话框,查看被选中读取的文件,如下图所示
重复步骤(1)~(3),可以添加多个Excel文件,并查看读取的文件名称
提示Tips
另外,如果需要导入同一个目录下的多份名称类似的文件,如导入同一个目录下名称分别为“物理成绩.xls”“物理成绩1.xls”和“物理成绩2.xls”的文件
我们可以使用通配符的方式导入,具体操作是在【选中的文件】参数表中,在【文件/目录】输入框中键入“C:\Users\HP\Desktop\”,在【通配符号】输入框中键入“物理成绩*.\.xls”,可以一次性读入这3个文件,如图所示
【工作表】选项卡参数
单击【工作表】选项卡,如下图所示
在【要读取的工作表列表】表中设置工作表参数,获取导入的Excel文件的工作表,【工作表】选项卡参数的说明如下表所示
参数名称 | 说明 |
工作表名称 | 表示Excel文件的工作表名称。可以是一个Excel文件、多个工作表,也可以是多个Excel文件、多个工作表。不同的文件,工作表名称可以相同。默认值为空 |
起始行 | 表示要读取的工作表中的开始行,行号是从0开始。默认值为空 |
起始列 | 表示要读取的工作表中的开始列,列号是从0开始。默认值为空 |
在【工作表】选项卡中,设置导入的Excel文件的工作表参数,步骤如下所示
(1) 获取选中文件的工作表
单击【获取工作表名称…】按钮,弹出【输入列表】对话框,左边【可用项目】列表列出选中文件的所有工作表,如"物理成绩.xls"文件的"Sheet1"工作表,而右边【你的选择】列表列出被选中的工作表,如图所示
(2)选择工作表
在【输入列表】对话框中,单击中间的【>】【>>】【<】【<<】按钮,可以在左、右列表中,选中或移除工作表,有关按钮说明如下表所示
按钮 | 说明 |
> | 表示右移按钮,选择左边【可用项目】列表中一个工作表,移到右边【你的选择】列表中 |
< |
表示左移按钮,将右边【你的选择】列表中的一个工作表移回到左边【可用项目】列表中,与【>】按钮操作相反 |
>> | 表示右移批处理按钮,将左边【可用项目】列表中的所有工作表,移到右边【你的选择】列表中 |
<< | 表示左移批处理按钮,将右边【你的选择】列表中的所有工作表,移回到左边【可用项目】列表中,与【>>】按钮操作相反 |
在【输入列表】对话框中,将左边【可用项目】工作表"Sheet1"选中移到右边【你的选择】表中
(3) 设置选中的工作表参数
单击【确定】按钮,将【你的选择】列表选中的“Sheet1”工作表添加至【要读取的工作表列表】表中进行参数设置,【起始行】和【起始列】参数都设置为"0",此时完成【工作表】选项卡参数的设置,如下图所示
提示Tips
如果导入的Excel文件中的每个工作表的字段结构都相同,那么在【要读取的工作表列表】表中的第1行,不设置任何工作表名称(即【工作表名称】输入栏留空),只需设置第1行的【起始行】和【起始列】输入栏参数,这样的设置是读取所有的工作表,即第1行将用于所有工作表
【字段】选项卡参数
单击【字段】选项卡,如下图所示
在【字段】选项卡中,设置"物理成绩.xls"文件中字段的参数,步骤如下所示
(1) 获取字段
单击【获取头部数据的字段…】按钮,添加字段到【字段】表中设置字段参数,如下图所示
(2) 设置字段参数
对字段参数进行设置,如下图所示,此时完成【字段】选项卡参数的设置
当获取字段后,【Excel输入】对话框下方【预览记录】按键的字体显示为黑色,说明此时可以预览数据
提示Tips
需要说明的是,如果有些Excel文件的文件头部没有字段数据,那么系统会自动生成默认的字段名称,也可以重新编辑字段名称,字段的类型、长度等字段属性
【内容】选项卡参数
单击【内容】选项卡,如下图所示
对读取Excel文件内容进行参数设置,一般按照缺省值配置,参数的说明如下表所示
参数名称 | 说明 |
头部 | 表示对选中的工作表是否包含表头行。默认值为√ |
非空记录 | 表示是否在输出中不出现空行(记录)。默认值为√ |
停在空记录 | 表示当读取记录遇到空行时,选择是否停止读取文件的当前工作表。默认值为空 |
限制 | 表示限制生成的记录数量。当设置为0时,结果不受限制。默认值为0 |
编码 | 表示读入的文本文件编码。第一次使用时,Kettle会在系统中搜索可用的编码。使用Unicode的,请指定UTF-8或UTF-16。默认值为Kettle系统的编码 |
【错误处理】选项卡参数
单击【错误处理】选项卡,如下图所示,可对获取Excel文件时产生的错误处理参数进行设置,检查和定位错误位置,一般按照缺省值配置
【其他输出字段】选项卡参数
单击【其他输出字段】选项卡,如下图所示
对Excel文件的其他输出字段参数进行设置,用于指定处理文件的附加信息,默认值为空,一般按照缺省值配置,有关参数的说明如下表所示
字段参数 | 说明 |
文件名称字段 | 表示指定完整的文件名称和扩展名的字段。默认值为空 |
工作表名称字段 | 表示指定要使用的工作表名称的字段。默认值为空 |
表单的行号列 | 表示指定要使用的当前工作表行号字段。默认值为空 |
行号列 | 表示指定写入行数的字段。默认值为空 |
文件名字段 | 表示指定文件名但没有路径信息、但有扩展名的字段。默认值为空 |
扩展字段 | 表示指定文件名扩展名的字段。默认值为空 |
路径字段 | 表示指定以操作系统格式包含路径的字段。默认值为空 |
文件大小字段 | 表示指定文件数据大小的字段。默认值为空 |
是否为文件隐藏字段 | 表示文件是否为隐藏的字段(布尔值)。默认值为空 |
Uri字段 | 表示指定包含Uri的字段。默认值为空 |
Root Uri字段 | 表示指定仅包含uri的根部分的字段。默认值为空 |
设置好字段参数后,单击【预览记录】按钮,弹出【预览数据数量】对话框,要预览的行数采用默认值,并单击【确定】按钮
弹出【预览数据】对话框,展示Excel输入的数据,如下图所示