首页 > 解决方案 > 使用 Talend Job 在 excel 中添加数据透视表的最佳方法是什么?

问题描述

我正在开发一个Talend Automation Job
我需要在 Excel的“数据”表中获取我的数据。然后使用 Excel 中的数据透视表在同一 Excel 工作簿
的单独工作表“ Segment_Summary ”中添加摘要。
(使用 Excel 2016)
然后在tsendMail 中将其作为附件发送给客户端。

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

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

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

输出发生了什么:

执行我的工作,
检查创建的新 Excel。
很好,pivot 会自动刷新到新数据。

那么这里出了什么问题:

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

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

标签: exceletltalendexcel-2016

解决方案


tFileCopy 不复制文件吗?您如何使用它从 Excel 文件中复制单个工作表?

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

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

鉴于原始数据的大小可能会随着运行而变化,您可能还会遇到数据透视表正在使用的命名范围的问题 - 假设命名范围是固定的。可能需要动态命名范围,如果您需要知道,此链接说明了如何实现它:动态命名范围


推荐阅读