Pentaho Excel 使用来自字段或其他变量的文件名创建文件

Pentaho Excel file creation with file name from field or other variable

我能够从 table 输入创建 csv 文件。在这里我可以从字段中指定文件名。

现在我需要将文件格式更改为 Excel。我没有看到任何将字段用作文件名的选项。 我有一些包含多个字段的数据 - 其中一个字段是位置名称。以前我使用 Table 输入步骤创建 csv 文件。使用 Location 字段命名 csv 文件。现在他们不需要 csv 文件,而是 Excel 文件。问题就出在这里

当前流量:

  1. 我从原始数据中获取唯一位置

  2. 然后我将此位置列传递给下一个转换以获取具有该位置的记录并为每个位置的记录创建一个文件 这里我使用 locationfilename 值作为 CSV 文件的文件名。

不知道你现有的解决方案是做什么的,或者为什么,这是我能想到的解决你的问题的最好方法,因为你想要不同文件格式的完全相同的数据:

  1. 创建一个新工作。在该作业中开始一个名为 'get locations' 的新转换

  2. 在如下所示的这个 'get locations' 转换中,有两个步骤 a) Table 输入,使用类似 'select distinct locations from data' 的查询和 b) 将行复制到结果。这应该给你一个独特的位置列表

  1. 创建另一个名为 'set variable and make excel' 的新作业。在您 'get locations' 转换后,此工作将 运行,勾选 'execute once for every row' 复选框

  2. 在新工作中,你将有两次蜕变。设置变量,并使excel。

  3. 集合变量变换有两步,先'gets rows from results'再'set variables'。在设置变量中,设置一个名为 'out_filename' 的新变量等于字段 'Location'

  1. 在 'make excel' 转换中,您有两个步骤,table 输入和 Microsoft excel 输出
  2. 在 table 输入中,运行 使用您的位置变量的查询(使用复选框替换脚本中的变量)例如。 select * 来自 Location = ${out_filename} 的数据
  3. 在'microsoft excel output'中将文件名设为c:\yourPath\${out_filename}

运行主要工作,这个应该可以。