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

时间:2018-04-07 09:21:19

标签: excel pentaho pdi spoon

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

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

当前流量: enter image description here

  1. 我从Raw数据中获取唯一的位置 enter image description here

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

1 个答案:

答案 0 :(得分:1)

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

  1. 创建一份新工作。在那份工作中,开始一项名为“获取地点”的新转变 your 'main' job with the get locations, and set variable and make excel

  2. 在下面的“获取位置”转换中,有两个步骤:a)表输入,查询类似于“从数据中选择不同的位置”,b)将行复制到结果中。这应该会为您提供您的独特位置列表

  3. Your first transformation, getting the locations with a select distinct

    1. 创建另一个名为'set variable and make excel'的新作业。这项工作将在“获取位置”转换后运行,勾选“每行执行一次”复选框

    2. 在新工作中,您将进行两次转换。设置变量,并使excel。 The second 'sub' job

    3. 设置变量转换有两个步骤,首先是“从结果中获取行”,然后是“设置变量”。在set变量中,将名为'out_filename'的新变量设置为等于'Location'字段

    4. setting the filename variable steps

      1. 在'make excel'转换中,您有两个步骤,表输入和Microsoft Excel输出 making the excel files
      2. 在表输入中,运行使用您的位置变量的查询(使用脚本中的复选框替换变量),例如。 select * from data where Location = $ {out_filename} Example settings for table input
      3. 在'microsoft excel output'中创建文件名c:\ yourPath \ $ {out_filename}
      4. 运行主要工作,这应该有用。