引言
在上一篇文章中,我们主要讲解的是:kettle中的文本文件输出。
在本篇文章中,我们主要讲解的是:Excel输出。
转换
转换(transaformation)是ETL解决方案中最主要的部分,它处理抽取、转换、加载各种对数据行的操作。
创建转换
我们要做的ETL操作,全是在转换中设计的,所以我们要先创建一个转换。
保存转换
给你新建的转换,起个名字,并保存
Excel 输出
可通过此组件,将数据流输出到excel文件中保存。
a、文件
选项说明
选项 | 描述 |
步骤名称 | 指定当前步骤的唯一步骤名称 |
文件名称 | 输出的Excel文件名称 |
创建父目录 | 如果当前目录不存在则创建父目录,该选项适应于指定的文件目录不存在的情况 |
启动时不创建文件 | 完成此步骤后,选择以创建输出文件。当数据流中没有行时,这可以避免创建空文件 |
扩展名 | 固定XLS格式(因为这是2003格式的Excel) |
在文件中包含步骤数 | 选择在扩展名之前的输出文件名中添加副本号。例如:nnnn_0.ext |
在文件名中包含日期 | 选择在扩展名之前输出日期,例如: |
在文件名中包含时间 | 选择在扩展名之前输出时间,例如: |
指定时间格式 | 选择特定的时间格式进行格式化输出以上关于时间的配置 |
结果中添加文件名 | 选择将文件名添加到内部文件名结果集。此内部结果集稍后可用于处理所有已创建的文件 |
b、内容
选项说明
选项 | 描述 |
追加 | 选择将行附加到指定文件的末尾。如果该文件不存在,将创建一个新文件。 |
头 | 选择以显示标题(在“自定义”选项卡中定义)。标题将显示在电子表格网格数据之前。即输出表头 |
脚 | 选择以显示电子表格网格数据后面的页脚 |
编码 | 指定文件的输出编码,1、指定UTF-8或者UTF-16编码,2、空选项使用系统默认编码 首次使用时,PDI客户端会在系统中搜索可用的编码并相应地填充此列表。 |
分隔每一行 | 指定要拆分文件的行数,并启动一个新的电子表格以继续输出数据。 |
工作表名称 | Excel中的Sheet名称 |
保护工作表 | 选择密码保护工作表。您还必须在“密码”字段中指定密码。 |
自动调整列大小 | 选择此选项可自动将工作表列的大小设置为最大值。 |
保留Null值 | 选择此选项可在输出中保留空值。 如果未选择此选项,则使用空字符串替换空值。 |
使用临时文件 | 指定临时文件目录 |
使用模板 | 选择以使用指定的Excel模板来创建输出文件。如果选择此选项,则还必须在Excel模板字段中指定模板文件名。 |
追加Excel模板 | 选择将输出附加到指定的Excel模板 |
c、格式
此标签用于个性化配置,主要分为表头和表数据两大部分:
选项说明
选项 | 描述 |
表头 | 表头字体、大小、是否加粗、斜线、斜线字体、高度、颜色等 |
表数据 | 字体、大小、颜色、背景等 |
d、字段
此选项卡定义导出字段的属性。单击“获取字段”以自动从输入流中检索字段列表并填充列表。最小宽度按钮可从输出中删除任何填充。
选项说明
选项 | 描述 |
名称 | 指定字段名称 |
类型 | 指定字段的数据类型(string、date或者number) |
格式 | 指定字段最终输出格式 |
获取字段 | 单击“获取字段”以从输入流中检索字段列表并填充列表。 |
最小宽度 | 单击“最小宽度”以从输出中删除任何多余的填充。 |
实战演示
我们要演示从txt文件中读取数据,然后通过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、Excel 输出组件
使用鼠标左键点击 文本文件输入组件,按住shift键,从文本文件输入组件拖拽到Excel 输出组件,拖拽后的效果如下图:
f、Excel 输出设置
g、运行转换
h、验证结果文件
结束语
本篇文章主要讲解了:Excel 输出组件的各种详细设置,最后实战演示了,从文本文件中读取数据,然后通过Excel 输出组件,把数据最终保存在excel文件中。
兄弟们,其实想和作是有一段距离的,你想着想着就没有了,可是你做着做着,它就落地了。
啥都别说了,兄弟们后面跟着我干就完了,我们依然掰开揉碎的方式去说。后续的内容更精彩,敬请期待,感谢兄弟们的关注!!