用多个工作表输出一个Excel文件
在Talend Open Studio for Data Integration中是否有一个组件可以输出单个Excel文件,但是有两个单独的工作表?
我想将原始文件中的一些列分隔到另一个表单中,将另一个列分隔到第二个表单中。
您需要将数据输出到两个单独的tFileOutputExcel组件中,第二个组件将数据作为不同的工作表添加到文件中。
一个简单的例子有一些姓名和年龄的数据持有一个独特的身份证,需要分成两张单独的工作表,其中一张纸上的ID和名称,另一张纸上的ID和年龄。
我使用tRowGenerator组件来生成这个数据,这个组件被configuration为生成一个id和随机的名字和年龄在18到75之间的序列:
然后我使用tMap组件分割这些数据:
第一个数据stream可以转到第一个tFileOutputExcel组件来创build带有“名称”表的文件:
不幸的是,我们不能直接将第二张数据输出到下一个文件,因为Talend需要在Excel文件上打开一个写入锁。 因此,在这种情况下,我们使用tBufferOutput组件存储数据到内存中(尽pipe我们也可以使用tHashOutput组件,或者可能将数据存储在临时文件或数据库中,如果这可能会超过总内存)。
第一个子作业完成后,将名称数据写入目标文件的名称表,然后我们可以将Age数据从缓冲区中读出,然后读入第二个tFileOutputExcel,然后将其configuration为将数据表附加到目标文件: