概述
Microsoft Excel output(Excel 输出)此步骤允许您将数据写入一个或多个Excel文件。
下面的部分描述用于配置此步骤的可用特性。
注意,此步骤将数据导出到Microsoft Excel 2003电子表格文件(.xls)。如果您想写入.xlsx文件(Excel 2007及以上版本),请参考Microsoft Excel 输出步骤。
选项
Excel 输出
Microsoft Excel output(Excel 输出)步骤有以下选项:
Step name(步骤名称):在画布上指定Microsoft Excel output(Excel 输出)步骤的唯一名称。您可以自定义名称或将其保留为默认名称。
- 文件选项卡包含如下选项
Filename(文件名):指定此步骤要读取的电子表格的文件名。
Create parent folder(创建父目录):选择此项,则创建父文件夹。
Do not create file at start(启动时不创建文件):完成此步骤后,选择创建输出文件。这样可以避免在数据流中没有行时创建空文件。
Extension(扩展名):指定一个三个字母的文件扩展名附加到创建的文件名中。
Include stepnr in filename(在文件名里包含步骤数?):选择在扩展名之前的输出文件名中添加拷贝数。例如:nnnn_0.ext。
Include date in file name(在文件名里包含日期):选择在文件名中包含系统日期。例如:_20101231。
Include time in file name(在文件名里包含时间):选择在文件名中包含系统时间。例如:_235959。
Specify Date time format(指定时间格式):选择以创建包含日期和时间戳的文件名,该文件名紧跟从已启用的向下列表中选择的内容。选择此选项将禁用“在文件名里包含日期”选项和“在文件名里包含时间”选项。
Date time format(时间格式):指定选定的文件名日期和时间格式。此选项要求指定时间格式也被选中。
Show file name(s)(显示文件名称...):单击以显示此步骤将生成的模拟文件列表。模拟取决于进入每个文件的行数。
Add filenames to result(结果中添加文件名):选择将文件名添加到内部文件名结果集。此内部结果集稍后可用于处理所有创建的文件。
- 内容选项卡包含如下选项
Append(追加):选择将行数据追加到指定文件的末尾。如果该文件不存在,将创建一个新的文件。
Header(头):选择显示标题(在自定义选项卡中定义)。标题将出现在电子表格网格数据之前。
Footer(脚):选择此选项可在电子表格网格数据之后显示页脚。
Encoding(编码):指定要使用的文本文件编码:指定UTF-8或UTF-16来使用Unicode;此选项为空,则将使用您系统上的默认编码。第一次使用时,PDI客户端会在系统中搜索可用的编码,并相应地填充此列表。
Split every . . . rows(分拆...一行):指定要在其中拆分文件并开始一个新的电子表格以继续数据输出的行数。
Sheet name(工作表名称):在电子表格文件中指定工作表的名称。
Protect sheet?(保护工作表?):选择“以密码保护工作表”。您还必须在密码字段中指定密码。
Auto size columns(自动调整列大小):选择此选项可自动将工作表列调整为最大值。
Retain NULL values(保留NULL值):选择此选项可在输出中保留空值。如果没有选择此选项,则将null替换为空字符串。
Use temporary file(使用临时文件):选择以创建将在生成工作簿期间使用的临时文件。如果未选择此选项,工作簿将完全在内存中构建。设置此选项需要评估内存使用和性能之间的权衡。
Temporary files directory(临时文件目录):指定临时文件目录。
Use Template(使用模板):选择使用指定的Excel模板创建输出文件。如果选择此选项,还必须在Excel模板字段中指定模板文件名。
Excel Template(Excel模板):指定要使用的Excel模板。
Append to Excel Template(追加Excel模板):选择将输出附加到指定的Excel模板。
- 格式选项卡包含如下选项
表头字体
Header font name(表头字体):指定标题中文本的字体名称。
Header font size(表头字体大小):指定标题中文本的字体大小。
Header font bold?(表头字体加粗?):选择使标题文本加粗。
Header font italic?(表头字体斜体?):选择可将标题文本设置为斜体。
Header font underline(表头字体下划线):指定标题文本是否带下划线。
Header font orientation(表头字体方向):如果您想要向左倾斜的文本(minus)、向右倾斜的文本(加plus)、 stacked、horizontal或vertical 文本,请为标题字体指定一个属性。
Add image (button)(添加图片(按钮)):单击“添加图片”可指定要在标题中使用的图像文件的位置。例如,一个公司的logo。
表数据字体
Row font name(数据字体):指定行的字体。
Row font size(数据字体大小):指定字体大小。
Row font color(数据字体颜色):指定字体颜色。
Row background color(数据背景颜色):为行指定背景颜色。
- 字段选项卡包含如下选项
字段选项卡为导出的字段定义属性。单击获取字段从输入流自动检索字段列表并填充该列表。最小宽度按钮从输出中删除任何填充。
Name(名称):指定字段的名称。
Type(类型):指定字段的数据类型(字符串、日期或数字)。
Format(格式):指定格式掩码(数字类型)。
Get Fields (button)(获取字段(按钮)):单击获取字段从输入流检索字段列表并填充该列表。
Minimal width (button)(最小宽度(按钮)):单击“最小宽度”删除输出中的任何多余填充。
注意:您可以指定Excel中定义任何可用的格式。这些格式不限于任何特定于Kettle的格式。
元数据注入支持
此步骤的所有字段都支持元数据注入。您可以将此步骤与ETL元数据注入一起使用,以便在运行时将元数据传递给您的转换。
示例
示例读取mysql数据库的用户表(user),作为Excel 输出的输入流数据。
为了演示,sql语句很简化,不可以作为实际业务场景,其表sql语句如下。
/*用户表 */DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `username` varchar(20) NOT NULL, `truename` varchar(50) DEFAULT NULL, `gender` varchar(50) DEFAULT NULL, PRIMARY KEY (`username`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into `user`(`username`,`truename`,`gender`) values ('hanmeimei','韩梅梅','女');insert into `user`(`username`,`truename`,`gender`) values ('lisi','李四','男');insert into `user`(`username`,`truename`,`gender`) values ('zhangsan','张三','男');
1.建立数据库连接对象
示例采用mysql数据库作为示例,首先下载mysql驱动https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.47,然后放在在文件夹data-integrationlib下。然后重启Spoon。如果已经添加过mysql驱动,则可忽略此步骤。
切换至主对象树,双击DB连接。
添加DB连接
然后选项连接类型为mysql,并维护相关的链接信息。
维护数据库连接
连接信息维护完之后,点击测试,测试连接是否成功。
2.获取用户表User数据作为数据输入源。
添加一个表输入步骤,数据库连接上面创建的DB连接名称demo,然后从获取SQL查询语句中选择表User,即可。
设置sql语句
最后点击预览,预览结果数据。
3.添加Excel输出输出步骤,并配置Excel输出选项
添加一个输出中的Excel输出步骤。并建立从表输入到Excel输出的一个节点连接。
建立节点连接
在Excel输出步骤上配置:文件名:F:user;
切换至内容选项卡,配置:工作表名称:user。
配置内容选项卡
切换至字段选项卡,然后点击获取字段,根据情况选择字段列表并点击确定。
字段选项卡获取字段
最后保存并点击运行。
运行结果
查看输出的Excel文件。
输出文件效果
查看文件内容
文件内容效果