【问题标题】:Pentaho Excel file creation with file name from field or other variable使用字段或其他变量中的文件名创建 Pentaho Excel 文件
【发布时间】:2018-04-07 09:21:19
【问题描述】:

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

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

当前流量:

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

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

【问题讨论】:

    标签: excel pentaho pdi spoon


    【解决方案1】:

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

    1. 创建新作业。在该工作中,开始一个名为“获取位置”的新转换

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

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

    2. 在新作业中,您将有两个转换。设置变量,制作excel。

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

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

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

    【讨论】:

    • 很抱歉没有提供正确的信息。我有一些包含多个字段的数据 - 其中一个字段是位置名称。以前我使用表输入步骤创建 csv 文件。使用 Location 字段命名 csv 文件。现在他们不想要一个 csv 文件,而是一个 Excel 文件。这就是问题所在。
    • 我认为我的解决方案仍然有效 - 只需转换 csv 即可。每个 CSV 是否有多行数据?
    • 是的。我更大的解决方案是根据唯一位置过滤数据。对于每个唯一位置,我需要创建一个文件。 CSV 很好,因为它接受了来自字段的文件名。但是excel没有。
    • 是的。它将有多行数据
    • 谢谢。猜猜这就是流量。我现有的解决方案是 simila,但我所做的是在一次转换中获取独特的位置。将行复制到结果中,并在下一次转换中使用获取的位置作为表输入中的参数,以根据位置获取数据并为每个位置创建一个 CSV 文件。可能会对您的方法进行一些调整,我会做对的。我会将我当前的流程添加为图像。一个复杂的问题是我不使用位置 ID 作为文件名,我使用位置描述。为此,我需要操作您的代码。
    猜你喜欢
    • 1970-01-01
    • 2016-02-28
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    相关资源
    最近更新 更多