用多个工作表输出一个Excel文件

在Talend Open Studio for Data Integration中是否有一个组件可以输出单个Excel文件,但是有两个单独的工作表?

我想将原始文件中的一些列分隔到另一个表单中,将另一个列分隔到第二个表单中。

您需要将数据输出到两个单独的tFileOutputExcel组件中,第二个组件将数据作为不同的工作表添加到文件中。

一个简单的例子有一些姓名和年龄的数据持有一个独特的身份证,需要分成两张单独的工作表,其中一张纸上的ID和名称,另一张纸上的ID和年龄。

示例作业布局

我使用tRowGenerator组件来生成这个数据,这个组件被configuration为生成一个id和随机的名字和年龄在18到75之间的序列:

行生成器使用Talend的tRowGenerator组件

然后我使用tMap组件分割这些数据:

使用tMap分割数据

第一个数据stream可以转到第一个tFileOutputExcel组件来创build带有“名称”表的文件:

首先tFileOutputExcel组件创建文件和“名称”工作表

不幸的是,我们不能直接将第二张数据输出到下一个文件,因为Talend需要在Excel文件上打开一个写入锁。 因此,在这种情况下,我们使用tBufferOutput组件存储数据到内存中(尽pipe我们也可以使用tHashOutput组件,或者可能将数据存储在临时文件或数据库中,如果这可能会超过总内存)。

第一个子作业完成后,将名称数据写入目标文件的名称表,然后我们可以将Age数据从缓冲区中读出,然后读入第二个tFileOutputExcel,然后将其configuration为将数据表附加到目标文件:

第二个tFileOutputExcel组件将“年龄”表添加到目标输出文件