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

使用字段或其他变量的文件名创建Pentaho Excel文件,excel,pentaho,pdi,spoon,Excel,Pentaho,Pdi,Spoon,我能够从表输入创建csv文件。在这里,我可以从字段中指定文件名 现在我需要将文件格式更改为Excel。我看不到任何使用字段作为文件名的选项。 我有一些包含多个字段的数据,其中一个字段是位置名。之前,我使用表输入步骤创建csv文件。使用位置字段命名csv文件。现在他们不想要csv文件,而是Excel文件。这就是问题所在 电流: 我从原始数据中获取唯一的位置 然后,我将此位置列传递给下一个转换,以获取具有该位置的记录,并为每个位置的记录创建一个文件 这里我使用locationfilename值作

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

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

电流:

  • 我从原始数据中获取唯一的位置

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


  • 由于不知道现有解决方案的作用或原因,这是我能想到的解决问题的最佳方法,因为您需要完全相同的数据以不同的文件格式:

  • 创建一个新作业。在该作业中,启动名为“获取位置”的新转换

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

  • 创建另一个名为“设置变量并生成excel”的新作业。此作业将在“获取位置”转换后运行,请勾选“每行执行一次”复选框

  • 在新工作中,您将进行两次转换。设置变量,并生成excel。

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

  • 在“生成excel”转换中,有两个步骤:表输入和microsoft excel输出
  • 在表输入中,运行一个使用位置变量的查询(使用脚本中的替换变量复选框),例如,从位置=${out_filename}的数据中选择*
  • 在“microsoft excel输出”中,将文件名设置为c:\yourPath\${out\u filename}

  • 运行主作业,这应该可以工作。

    很抱歉,没有提供正确的信息。我有一些包含多个字段的数据,其中一个字段是位置名。之前,我使用表输入步骤创建csv文件。使用位置字段命名csv文件。现在他们不想要csv文件,而是Excel文件。这就是问题所在。我认为我的解决方案仍然有效——只需转换csv即可。每个CSV是否有多行数据?是。我更大的解决方案是基于唯一位置过滤数据。对于每个唯一的位置,我需要创建一个文件。Csv很好,因为它接受字段中的文件名。但是excel没有,是的。它将有多行数据,谢谢。我猜这就是流程。我现有的解决方案是simila,但我所做的是在一次转换中获取唯一的位置。将行复制到结果,并在下一次转换中使用获取的位置作为表输入中的参数,根据位置获取数据,并为每个位置创建CSV文件。也许你的方法有一些调整,我会做对的。我将以图像的形式添加当前流。一个复杂的问题是我不使用位置id作为文件名,而是使用位置描述。为此,我需要操纵您的代码。