如何通过Pentaho勺子中的xls-file输入数据来使用其他条件?

时间:2016-09-19 19:22:36

标签: pentaho etl pentaho-spoon

我刚开始学习pentaho勺子步骤,并解决一个问题有一个问题。我需要从xls-file转换数据并将其转换为数据库。问题是我的输入文件如下所示:table-description

我找不到如何解决两个问题:

  1. 对于我的下一步,我不仅需要保存表本身(范围A8:D11),还需要保存日期(单元格A5)。当我尝试使用Microsoft Excel输入在pentaho中执行此操作时 - 仅当我选择A8-cell作为起始行时,它才有效,但日期未保存。

  2. 在Microsoft Excel输入中 - 步骤I必须始终选择一个起始行以生成表格并在后续步骤中使用它。我必须手动完成,我的意思是说我的桌子从A8-cell开始。在我的情况下,我不能总是确定该表从A8-cell开始。我知道,起始单元格就是那个单元格,它位于A-Column中,其值为“Date”。 Microsoft Excel输入 - 步骤将是我的水壶的第一步,因为我必须获取数据并更改它们。这就是我认为在Java Script之前无法使用的原因。

  3. 我还没有找到解决这两个问题的方法,我不知道是否可以实现。我将不胜感激任何帮助。

2 个答案:

答案 0 :(得分:0)

我不确定将excel文件转换为数据库是什么意思但是如果可以将xls转换为csv并读取该文件,那么您就知道需要从哪一行过滤数据。基本上,您可以使用简单的过滤步骤在匹配列名称时过滤数据。我希望这将有所帮助。

答案 1 :(得分:0)

  1. 使用两个Microsoft Excel输入步骤。一步读取表格(A8:D11)。另一步读取日期(A5)。然后合并两个流,例如使用Join Rows(笛卡尔积)步骤

  2. 阅读所有内容。然后使用带有两个脚本选项卡的Javascript步骤。对于其中一个选项卡:右键单击并选择“设置启动脚本”。代码:var start = 0;另一个选项卡应保留为转换脚本。伪代码:if(FieldA equals "Date") {start = 1;}。现在,您将在流中有一个名为start的附加字段。如果start等于0,那么您知道表格数据尚未开始,您可以过滤掉该行。