引言

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

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

在我使用的kettle 8.3版本中,Excel输出有两个组件对象,分别是:Excel输出Microsoft Excel 输出。Excel输出是仅支持2003版本的格式(有数量限制,且步骤设置较简单),后面的Microsoft Excel 输出则包含了很多属性、规则设置。我们在日常工作中,选择Excel输出时,应该选择Microsoft Excel 输出。

转换

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

创建转换

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

kettle庖丁解牛第19篇之Microsoft Excel输出_etl

kettle庖丁解牛第19篇之Microsoft Excel输出_kettle_02

保存转换

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

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

kettle庖丁解牛第19篇之Microsoft Excel输出_Microsoft Excel 输出_04

kettle庖丁解牛第19篇之Microsoft Excel输出_kettle_05

Microsoft Excel 输出

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

kettle庖丁解牛第19篇之Microsoft Excel输出_kettle_06

kettle庖丁解牛第19篇之Microsoft Excel输出_作业_07

a、文件&工作表

选项卡主要分为三个部分:文件、工作表、模板

kettle庖丁解牛第19篇之Microsoft Excel输出_作业_08

1、文件选项说明

选项

描述

文件名称

用于指定文件输出名称、存储路径

扩展名

选择xls或者xlsx两种格式

Stream XSLX data

将大型XLSX文件写入输出文件时选择此选项

1、如果要流式传输XLSX文件,请选择此选项。当您选中此复选框时,系统使用流API来编写大文件而没有任何内存限制(不超过MS Excel的1,048,575行和16,384列的限制)。

2、如果您不想流式传输XLSX文件,请清除此复选框。

只有选择扩展为xlsx格式时该选项才可用

分隔每一行数据

在多个副本中运行步骤时,选择此选项可在文件名(例如_0)中包含副本号,例如同时启动步骤的多个副本

文件名包含日期

文件名称包含日期,如:_20190916

文件名包含时间

文件名称包含时间,如:_235959

指定日期格式

指定日期的format格式

如果文件已存在

如果文件存在选择数据的输出方式,覆盖现有文件或者继续使用原文件输出

在接收到数据钱不创建文件

如果选择此选项,则该步骤仅在检测到行后才创建该文件。如果清除此选项,则始终会创建输出文件,无论行是否实际写入文件。

结果中添加文件名

使用此选项可将文件名添加到MS Excel输出文件中。

2、工作表选项说明

选项

描述

工作表名

输出表的sheet名称

设为活动工作表

如果选中,则在Excel中打开文件时,默认情况下将在上面的工作表中打开MS Excel文件

如果输出文件以已经存在此工作表

如果已经存在则选择输出方式,一种是覆盖、一种是继续追加输出

保护工作表(仅限XLS格式)

保护当前XLS格式的Excel表格,选择此项后输入保护人及密码

3、模板选项说明

选项

描述

使用模板创建新文件

如果要使用指定的MS Excel模板创建输出文件,请选择此选项。选择此选项可指定用于创建输出文件的Excel模板。如果选择此选项,还必须在下面的模板文件字段中指定模板文件名。如果不想指定模板文件,请清除此选项。

模板文件

如果选中了上面的“创建新文件时使用模板”复选框,则输入要使用的模板文件名,或单击“浏览”按钮并导航到该文件。

使用模板创建新工作表

如果要使用指定的模板工作表创建输出工作表,请选择此选项。选择此选项可指定用于创建输出图纸的模板图纸。如果选择此选项,还必须在下面的“模板工作表”字段中指定模板工作表的名称。如果不想指定样板图纸,请清除此选项。

模板工作表

如果选中了上面的“创建工作表时使用模板”复选框,则输入要使用的工作表名称,或单击“浏览”按钮并导航到该名称。

Hide Template sheet

确定打开MS Excel输出文件时是否希望模板工作表可见。选择此选项可对打开输出文件的用户隐藏模板工作表。清除此选项可向打开输出文件的用户显示模板工作表。

b、内容

kettle庖丁解牛第19篇之Microsoft Excel输出_kettle_09

1、内容选项说明

选项

描述

开始输出自单元格

默认A1,我们在分页导出数据输出到Excel时,该字段需要使用变量替代

当输出记录时

选择覆盖或者继续输出

输出表头

选择输出表头

输出表尾

输出表尾

强制公式重新计算

重新计算公式

不改变现有单元格格式

不改变现有单元格格式

2、写入已存在的工作表选项说明

选项

描述

在表的末尾开始写(追加行)

在工作表的结尾,追加写入数据

抵消行数

在往工作表写入数据时,抵消多少行

在写入文件前添加的空行数

在工作表中写入内容前,先写入多少空行

删除表头

删除excel中的表头部分

3、字段选项说明

选项

描述

名称

字段的名称

类型

字段的数据类型:字符串、日期或数字。

格式

要在工作表中使用的Excel格式。有关有效格式,请参阅Excel手册。还有一些在线参考资料。

单元格式样式

Excel电子表格(字母列、数字行)中的一个单元格,如A1、B4等,用于复制此列的样式。该值通常是模板中预先设置的单元格。

字段标题

如果设置了,它将用于页眉/页脚,而不是壶穴字段名。

单元格表头/表位格式

用于复制页眉/页脚样式的单元格(通常是模板中预先设置样式的单元格)。

field contains formula

如果字段包含Excel公式,则设置为“是”。您不需要在字段值之前包含符号=。

超连接

包含要链接到的目标的字段。支持的目标可以是指向其他Excel电子表格单元格、网站URL、ftp、电子邮件地址或本地文档的链接。

Cell comment (XLSX)

XLSX格式允许在单元格上添加注释。如果要生成注释,可以为给定列指定包含注释和作者的字段。

Cell comment author (XLSX)

XLSX格式允许在单元格上添加注释。如果要生成注释,可以为给定列指定包含注释和作者的字段。

实战演示

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

a、创建txt文件

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

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

b、创建转换

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

c、文本文件输入设置

增加txt文件做为数据源

kettle庖丁解牛第19篇之Microsoft Excel输出_etl_12

kettle庖丁解牛第19篇之Microsoft Excel输出_kettle_13

kettle庖丁解牛第19篇之Microsoft Excel输出_etl_14

kettle庖丁解牛第19篇之Microsoft Excel输出_Microsoft Excel 输出_15

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

kettle庖丁解牛第19篇之Microsoft Excel输出_作业_16

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

kettle庖丁解牛第19篇之Microsoft Excel输出_Microsoft Excel 输出_17

kettle庖丁解牛第19篇之Microsoft Excel输出_Microsoft Excel 输出_18

kettle庖丁解牛第19篇之Microsoft Excel输出_作业_19

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

kettle庖丁解牛第19篇之Microsoft Excel输出_kettle_20

kettle庖丁解牛第19篇之Microsoft Excel输出_转换_21

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

kettle庖丁解牛第19篇之Microsoft Excel输出_转换_22

kettle庖丁解牛第19篇之Microsoft Excel输出_作业_23

kettle庖丁解牛第19篇之Microsoft Excel输出_作业_24

e、Microsoft Excel 输出组件

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

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

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

f、Microsoft Excel 输出设置

kettle庖丁解牛第19篇之Microsoft Excel输出_作业_27

kettle庖丁解牛第19篇之Microsoft Excel输出_etl_28

kettle庖丁解牛第19篇之Microsoft Excel输出_转换_29

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

kettle庖丁解牛第19篇之Microsoft Excel输出_kettle_31

g、运行转换

kettle庖丁解牛第19篇之Microsoft Excel输出_etl_32

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

kettle庖丁解牛第19篇之Microsoft Excel输出_kettle_34

kettle庖丁解牛第19篇之Microsoft Excel输出_转换_35

h、验证结果文件

kettle庖丁解牛第19篇之Microsoft Excel输出_作业_36

结束语

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

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

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