引言

在上一篇文章中,我们主要讲解的是:kettle中的文本文件输出。

在本篇文章中,我们主要讲解的是:Excel输出。

转换

转换(transaformation)是ETL解决方案中最主要的部分,它处理抽取、转换、加载各种对数据行的操作。

创建转换

我们要做的ETL操作,全是在转换中设计的,所以我们要先创建一个转换。

kettle庖丁解牛第18篇之Excel输出_excel输出

kettle庖丁解牛第18篇之Excel输出_excel输出_02

保存转换

kettle庖丁解牛第18篇之Excel输出_kettle_03

给你新建的转换,起个名字,并保存

kettle庖丁解牛第18篇之Excel输出_作业_04

kettle庖丁解牛第18篇之Excel输出_作业_05

Excel 输出

可通过此组件,将数据流输出到excel文件中保存。

kettle庖丁解牛第18篇之Excel输出_etl_06

kettle庖丁解牛第18篇之Excel输出_etl_07

a、文件

kettle庖丁解牛第18篇之Excel输出_excel输出_08

选项说明

选项

描述

步骤名称

指定当前步骤的唯一步骤名称

文件名称

输出的Excel文件名称

创建父目录

如果当前目录不存在则创建父目录,该选项适应于指定的文件目录不存在的情况

启动时不创建文件

完成此步骤后,选择以创建输出文件。当数据流中没有行时,这可以避免创建空文件

扩展名

固定XLS格式(因为这是2003格式的Excel)

在文件中包含步骤数

选择在扩展名之前的输出文件名中添加副本号。例如:nnnn_0.ext

在文件名中包含日期

选择在扩展名之前输出日期,例如:​​_20190816​

在文件名中包含时间

选择在扩展名之前输出时间,例如:​​_235959​

指定时间格式

选择特定的时间格式进行格式化输出以上关于时间的配置

结果中添加文件名

选择将文件名添加到内部文件名结果集。此内部结果集稍后可用于处理所有已创建的文件

b、内容

kettle庖丁解牛第18篇之Excel输出_excel输出_09

选项说明

选项

描述

追加

选择将行附加到指定文件的末尾。如果该文件不存在,将创建一个新文件。

选择以显示标题(在“自定义”选项卡中定义)。标题将显示在电子表格网格数据之前。即输出表头

选择以显示电子表格网格数据后面的页脚

编码

指定文件的输出编码,1、指定UTF-8或者UTF-16编码,2、空选项使用系统默认编码

首次使用时,PDI客户端会在系统中搜索可用的编码并相应地填充此列表。

分隔每一行

指定要拆分文件的行数,并启动一个新的电子表格以继续输出数据。

工作表名称

Excel中的Sheet名称

保护工作表

选择密码保护工作表。您还必须在“密码”字段中指定密码。

自动调整列大小

选择此选项可自动将工作表列的大小设置为最大值。

保留Null值

选择此选项可在输出中保留空值。 如果未选择此选项,则使用空字符串替换空值。

使用临时文件

指定临时文件目录

使用模板

选择以使用指定的Excel模板来创建输出文件。如果选择此选项,则还必须在Excel模板字段中指定模板文件名。

追加Excel模板

选择将输出附加到指定的Excel模板

c、格式

此标签用于个性化配置,主要分为表头和表数据两大部分:

kettle庖丁解牛第18篇之Excel输出_转换_10

选项说明

选项

描述

表头

表头字体、大小、是否加粗、斜线、斜线字体、高度、颜色等

表数据

字体、大小、颜色、背景等

d、字段

此选项卡定义导出字段的属性。单击“获取字段”以自动从输入流中检索字段列表并填充列表。最小宽度按钮可从输出中删除任何填充。

kettle庖丁解牛第18篇之Excel输出_etl_11

选项说明

选项

描述

名称

指定字段名称

类型

指定字段的数据类型(string、date或者number)

格式

指定字段最终输出格式

获取字段

单击“获取字段”以从输入流中检索字段列表并填充列表。

最小宽度

单击“最小宽度”以从输出中删除任何多余的填充。

实战演示

我们要演示从txt文件中读取数据,然后通过Excel 输出组件,把数据最终保存在excel文件中。

a、创建txt文件

我在D盘下,创建一个txt文件,命名为test。第1行是文件表头,从第2行开始是数据。此文件有3列数据,每1列通过","分割。我使用的分割符,它是英文的。你要注意你的分割符,它是中文的?还是英文的?

kettle庖丁解牛第18篇之Excel输出_转换_12

b、创建转换

kettle庖丁解牛第18篇之Excel输出_etl_13

c、文本文件输入设置

增加txt文件做为数据源

kettle庖丁解牛第18篇之Excel输出_excel输出_14

kettle庖丁解牛第18篇之Excel输出_作业_15

kettle庖丁解牛第18篇之Excel输出_etl_16

kettle庖丁解牛第18篇之Excel输出_转换_17

设置数据源txt文件,每1列数据之间使用","分割。并且第1行要跳过,从第2行开始是数据。

kettle庖丁解牛第18篇之Excel输出_kettle_18

从数据源txt文件中,获取表头字段名

kettle庖丁解牛第18篇之Excel输出_转换_19

kettle庖丁解牛第18篇之Excel输出_作业_20

kettle庖丁解牛第18篇之Excel输出_etl_21

设置最小宽度(防止报错:kettle java.lang.OutOfMemoryError: Requested array size exceeds VM limit)

kettle庖丁解牛第18篇之Excel输出_excel输出_22

kettle庖丁解牛第18篇之Excel输出_转换_23

d、文本文件输入预览记录

kettle庖丁解牛第18篇之Excel输出_excel输出_24

kettle庖丁解牛第18篇之Excel输出_kettle_25

kettle庖丁解牛第18篇之Excel输出_kettle_26

e、Excel 输出组件

kettle庖丁解牛第18篇之Excel输出_etl_27

使用鼠标左键点击 文本文件输入组件,按住shift键,从文本文件输入组件拖拽到Excel 输出组件,拖拽后的效果如下图:

kettle庖丁解牛第18篇之Excel输出_转换_28

f、Excel 输出设置

kettle庖丁解牛第18篇之Excel输出_excel输出_29

kettle庖丁解牛第18篇之Excel输出_etl_30

kettle庖丁解牛第18篇之Excel输出_excel输出_31

kettle庖丁解牛第18篇之Excel输出_kettle_32

kettle庖丁解牛第18篇之Excel输出_etl_33

g、运行转换

kettle庖丁解牛第18篇之Excel输出_转换_34

kettle庖丁解牛第18篇之Excel输出_kettle_35

kettle庖丁解牛第18篇之Excel输出_转换_36

kettle庖丁解牛第18篇之Excel输出_作业_37

h、验证结果文件

kettle庖丁解牛第18篇之Excel输出_作业_38

结束语

本篇文章主要讲解了:Excel 输出组件的各种详细设置,最后实战演示了,从文本文件中读取数据,然后通过Excel 输出组件,把数据最终保存在excel文件中。

兄弟们,其实想和作是有一段距离的,你想着想着就没有了,可是你做着做着,它就落地了。

啥都别说了,兄弟们后面跟着我干就完了,我们依然掰开揉碎的方式去说。后续的内容更精彩,敬请期待,感谢兄弟们的关注!!