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:
- 查找最大列数,并用stringtypes手动指定列(因为一列的内容可能不同 – 数字,string等),然后根据一些规则分析行
- 使用POI提取表单内容到文本 – 新的XSSFExcelExtractor(新的XSSFWorkbook(new File(fileName)))。getText() – 然后使用javaparsing它。
这里是选项1.对于你的简单情况:
- Excelinput字段(标题未选中!):
- JS步骤添加包含当前类名称的className字段:
第二步后的结果:
- 最后一步 – 我们过滤掉标题行(例如,名字是空的或=“名字”)。
结果: