ETL – 如何将表标题作为字段值添加到Pentaho Spoon中的每个后续行

我是Pentaho Spoon(水壶)的新手,有以下任务:

有一个excel表,它可能是这样的:

history class name first name id Doe John 213 Muster Max 118 biology class name first name id Parker Peter 844 

问题是在一个xls文件里有更多的表格。 在这个例子中,有历史课的学生和生物课的学生。

我需要输出的是:每个学生都有一个新领域的所有学生的表格,说明他是哪个class级的一部分。 例:

 name first name id class Doe John 213 history class Muster Max 118 history class Parker Peter 884 biology class 

(我的例子极其简单)

如何将input表转换为输出表? 感谢您的帮助!

你不能正常parsing在pentaho中的多个表的excel。 即最好的办法是有多张不同的表。

如果这是不可能的,那么至less有两个select:

  1. 查找最大列数,并用stringtypes手动指定列(因为一列的内容可能不同 – 数字,string等),然后根据一些规则分析行
  2. 使用POI提取表单内容到文本 – 新的XSSFExcelExtractor(新的XSSFWorkbook(new File(fileName)))。getText() – 然后使用javaparsing它。

这里是选项1.对于你的简单情况:

  1. Excelinput字段(标题未选中!):

在这里输入图像说明

  1. JS步骤添加包含当前类名称的className字段:

在这里输入图像说明

第二步后的结果:

在这里输入图像说明

  1. 最后一步 – 我们过滤掉标题行(例如,名字是空的或=“名字”)。

结果:

在这里输入图像说明