Skip to main content

ExcelWriter

描述:

该组件用来将流入的flowfile转换为excel并进行输出,支持数据写入excel、支持excel工作簿修改(详见excel.sheet.index属性关于main的说明)。 流文件属性要求: excel.sheet.id: 一组碎片的id,该组件会将具有相同id的一批组件写入到同一个excel中。 excel.sheet.index: 碎片的索引,该属性决定了此碎片在excel中的位置。如果值为数字,此碎片的内容必须可被 record reader 参数设置的控制器服务解析,内容可以不是平展的,若数据是非平展的,则表头会进行合并单元格操作。如果值为‘main’,则将此碎片视为主碎片,此碎片的内容必须为一个完整的excel工作簿,其余碎片会写入到此工作簿中。索引值为‘main’的碎片在同一组中只能有一个或没有,如果同一组中存在多个,该组flowfile都会流向失败线。 excel.sheet.count: 一组碎片的总数。只有一组碎片的数量达到该值才会进行处理。如果索引值超出总数范围,该组flowfile都会流向失败线。 excel.sheet.name: 此碎片生成的sheet页的名字,如果不填则使用excel默认值。

标签:

excel, write, poi

参数:

如下列表中,必填参数则标识为加粗. 其他未加粗参数,则表示为可选参数。表中同时提到参数默认值设置, 并且 参数还支持 表达式语言.

名字默认值允许值列表描述
记录读取器控制器服务API:
RecordReaderFactory
实现:
ParquetReader
GrokReader
SyslogReader
Syslog5424Reader
CSVReader
AvroReader
JsonPathReader
JsonTreeReader
ScriptedReader
XMLReader
指定用于读取数据的控制器服务。
文件名${filename}用于输出的文件名。如果为空则使用新flowfile的uuid + excel版本扩展名。如果为表达式,若该组碎片只有一个,则使用该碎片对应的属性。若该组碎片有多个,且存在主碎片,则使用主碎片对应的属性。若该组碎片有多个,且不存在主碎片,则使用新flowfile的uuid + excel版本扩展名。

支持表达式语言 (支持流属性和变量)
excel版本xlsx
- xls
- xlsx
若该组碎片中存在主碎片,则生成的excel使用主碎片工作簿的版本。若该组碎片中不存在主碎片,则生成的excel使用此配置项的版本。
冲突解决策略覆盖
- 覆盖
- 追加
- 取消
当存在sheet页重名时的操作。可用 覆盖(overwrite)、追加(append)、取消(cancel)。
写入表头true
- true
- false
是否写入表头,表头顺序与schema设定的一致。
表头显示名称映射写入表头时,表头自定义配置显示名称的映射json。当设置空或者格式不合法时,表头显示按照schema定义。格式为key-value的map的json串,key值为avro.schema.name, value值为要定义的显示名称。比如:{"id":"id","full_name":"全名","age":"年龄"}。如果schema的某项name在改json里不存在,输出的表头该项依然是schema的name值。

支持表达式语言 (仅支持变量)

连线:

名字描述
success成功转化成excel数据,流文件将被路由到此连线。
failure未能成功转化出excel文档数据的话,流文件将被路由到此连线。

读取属性:

未提供。

写入属性:

未提供。

状态管理:

该组件不保存状态。

限制:

该组件没有限制

输入流要求:

组件必须提供输入流。

系统资源考量:

未提供。