引言
在上一篇文章中,我们主要讲解的是:kettle中的Excel 输出组件。
在本篇文章中,我们主要讲解的是:Microsoft Excel 输出组件。
在我使用的kettle 8.3版本中,Excel输出有两个组件对象,分别是:Excel输出和Microsoft Excel 输出。Excel输出是仅支持2003版本的格式(有数量限制,且步骤设置较简单),后面的Microsoft Excel 输出则包含了很多属性、规则设置。我们在日常工作中,选择Excel输出时,应该选择Microsoft Excel 输出。
转换
转换(transaformation)是ETL解决方案中最主要的部分,它处理抽取、转换、加载各种对数据行的操作。
创建转换
我们要做的ETL操作,全是在转换中设计的,所以我们要先创建一个转换。
保存转换
给你新建的转换,起个名字,并保存
Microsoft Excel 输出
可通过此组件,将数据流输出到excel文件中保存。
a、文件&工作表
选项卡主要分为三个部分:文件、工作表、模板
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、内容
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列通过","分割。我使用的分割符,它是英文的。你要注意你的分割符,它是中文的?还是英文的?
b、创建转换
c、文本文件输入设置
增加txt文件做为数据源
设置数据源txt文件,每1列数据之间使用","分割。并且第1行要跳过,从第2行开始是数据。
从数据源txt文件中,获取表头字段名
设置最小宽度(防止报错:kettle java.lang.OutOfMemoryError: Requested array size exceeds VM limit)
d、文本文件输入预览记录
e、Microsoft Excel 输出组件
使用鼠标左键点击 文本文件输入组件,按住shift键,从文本文件输入组件拖拽到Microsoft Excel 输出组件,拖拽后的效果如下图:
f、Microsoft Excel 输出设置
g、运行转换
h、验证结果文件
结束语
本篇文章主要讲解了:Microsoft Excel 输出组件的各种详细设置,最后实战演示了,从文本文件中读取数据,然后通过Microsoft Excel 输出组件,把数据最终保存在excel文件中。
兄弟们,其实想和作是有一段距离的,你想着想着就没有了,可是你做着做着,它就落地了。
啥都别说了,兄弟们后面跟着我干就完了,我们依然掰开揉碎的方式去说。后续的内容更精彩,敬请期待,感谢兄弟们的关注!!