使用Talend Job在excel中添加数据透视表的最佳方法是什么?

问题描述

我正在开发 Talend自动化作业
我需要在Excel的“ 数据”表中获取数据的地方。
然后使用excel中的数据透视表在同一excel工作簿中单独的表格“ Segment_Summary
添加摘要。 (使用Excel 2016)
然后以 tsendMail 的形式将其作为附件发送给客户端。

您能告诉我比下面解释的更好的方法吗?

所以,这是我尝试做的事情:

我使用“ 数据”表创建了一个示例工作簿。
在“ 数据”工作表中选择了单元格,并为其创建了命名范围。
然后在新工作表“ Segment_Summary ”中的该命名范围上添加了数据透视表。
还要在打开文件时将“数据透视设置”设置为“自动刷新”。
在Talend内部,我使用 tFileOutputExcel 将数据提取到新的excel文件中。
使用 tFilecopy 将示例工作簿中的 Segment_Summary 工作表复制到新的excel文件中。
使用 tsendMail 将excel发送为附件

输出发生了什么:

执行我的工作,
检查创建的新Excel。
很好, 数据透视表会自动刷新为新数据。

那么这里出了什么问题:

当我从邮件中下载文件 并打开它时,枢轴未刷新。 这是因为认情况下,MS Excel在保护模式中打开每个文件,并禁用“编辑”。 因此,当客户端打开此文件时,他们将看到过时的数据,而不是刷新的数据。

(我不能简单地在编辑模式下打开打开它的邮件,因为它必须发送给很多人。而且我的电子邮件模板是由销售人员决定的逐字逐句。)

解决方法

tFileCopy不会复制文件吗?您如何使用它从Excel文件复制一张纸?

鉴于Talend不能“理解” Excel(仅数据和文件),我能想到的唯一可行的方法是使目标Excel文件已经包含数据透视表,然后使用Talend在其中更新工作表包含原始数据的目标文件。

我可能会创建一个带有示例数据和数据透视表的模板Excel文件,然后在每次运行中创建该文件的副本并更新副本。

鉴于原始数据的大小可能会在每次运行之间发生变化,因此,数据透视表使用的命名范围可能也会出现问题-假设命名范围是固定的。可能需要一个动态的命名范围,如果您需要了解以下内容,此链接说明了如何实现此目标:Dynamic Named Range