如何将excel文件中的字符串分解为子串并加载它?

时间:2012-02-16 16:30:34

标签: java oracle excel etl talend

我实际上是在做一个talend工作。我需要从excel文件加载到oracle 11g数据库。

我无法弄清楚如何在talend中打破我的excel条目文件的字段并将损坏的字符串加载到数据库中。

例如,我有一个这样的字段:

toto:12;tata:1;titi:15

我需要加载到表格中,例如成绩:

| name | grade |
|------|-------|
| toto |12     |
| titi |15     |
| tata |1      |
|--------------|

提前感谢

2 个答案:

答案 0 :(得分:3)

在Talend作业中,您可以使用tFileInputExcel来读取Excel文件,然后使用tNormalize将特殊列拆分为具有“;”分隔符的各行。之后,使用带有“:”分隔符的tExtractDelimitedFields将规范化列拆分为namegrade列。然后,您可以使用tOracleOutput组件将结果写入数据库。

虽然这个解决方案比AlexR建议的Java代码段更详细,但它的优势在于它保留在Talend的图形编程模型中。

答案 1 :(得分:2)

for(String pair : str.split(";")) {
    String[] kv = pair.split(":");
    // at this point you have separated values
    String name = kv[0];
    String grade = kv[1];

    dbInsert(name, grade);
}

现在你必须实施dbInsert()。使用JDBC或使用任何更高级别的工具(例如Hivernate,iBatis,JDO,JPA等)来做它。