【实验目的】
1.利用Kettle的“Excel输入”等组件,完成合并多个Excel文件。
2.熟练掌握“Excel输入”组件,命名参数,通配符的使用,完成合并多个Excel文件。

【实验原理】
通过使用正则表达式配置“Excel输入”组件中的通配符,实现多个Excel文件合并。

【实验环境】
操作系统:Windows10 
Kettle版本:7.1.0.0
jdk版本:1.8.0及以上版本

【实验步骤】

一、建立转换

双击spoon.bat打开kettle。(1)点击新建按钮,在下拉菜单中点击选择"转换"即可创建;(2)然后点击保存按钮,重命名该转换文件,保存在某个指定的路径;(3)选择输入步骤、输出步骤和跳。

kettle mysql多张表合并转json kettle合并多个excel文件_大数据

二、各组件的配置

1.‘Excel输入’的配置

Step1:在空画布上点击,右键选择“属性”,设置转换属性,配置命名参数input_dir为输入文件夹的路径。

kettle mysql多张表合并转json kettle合并多个excel文件_数据_02

Step2:双击‘Excel输入’,配置‘文件’选项卡,使用命名参数选定的路径,并配置通配符号,“包含子目录”配置为”是”

kettle mysql多张表合并转json kettle合并多个excel文件_数据_03

Step3:配置‘工作表’选项卡,点击获取‘获取工作表名称’,选择输入文件的工作表

kettle mysql多张表合并转json kettle合并多个excel文件_大数据_04

Step4:配置‘字段’选项卡,点击获取‘获取来自头部的字段’,验证输入的数据

kettle mysql多张表合并转json kettle合并多个excel文件_字段_05

2.‘Microsoft Excel输出’的配置

Step1:配置‘文件&工作表’选项卡

kettle mysql多张表合并转json kettle合并多个excel文件_字段_06

Step2:配置‘内容’选项卡并获取字段(多余的字段进行删除)

kettle mysql多张表合并转json kettle合并多个excel文件_字段_07

三、执行转换

点击按钮,执行转换,结果如下:

kettle mysql多张表合并转json kettle合并多个excel文件_数据_08

四、实验结果:

1、输入文件如下所示:

课程信息表1.xlsx:

kettle mysql多张表合并转json kettle合并多个excel文件_数据_09

课程信息表2.xlsx:

kettle mysql多张表合并转json kettle合并多个excel文件_选项卡_10

课程信息表3.xlsx:

kettle mysql多张表合并转json kettle合并多个excel文件_大数据_11

2、输出文件‘test2_2.xls’如下:

kettle mysql多张表合并转json kettle合并多个excel文件_字段_12

五、实验过程中遇到的问题:

(一)文件开课时间的数据类型设置为Date类型,导致无法解读而报错;修改其类型为String类型即可。

kettle mysql多张表合并转json kettle合并多个excel文件_数据_13

六、实验总结

本次实验主要熟练掌握“Excel输入”组件的使用,并且配置好命名参数、通配符等,完成合并多个Excel文件的操作。
在操作过程中,多多注意一些细节,比如输入文件类型的输入流、数据的起始行和起始列以及获取到的数据的类型调整等等,比较庆幸的是,经过上一个实验对复杂表头的数据源处理,在本次实验过程中并没有遇到什么重大错误,这说明以前的错误经验都使我运用kettle更加的熟练。

附 件:

kettle mysql多张表合并转json kettle合并多个excel文件_选项卡_14