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文档数据的话,流文件将被路由到此连线。 |
读取属性:
未提供。
写入属性:
未提供。
状态管理:
该组件不保存状态。
限制:
该组件没有限制
输入流要求:
组件必须提供输入流。
系统资源考量:
未提供。