使用Java从Excel电子表格中收集列名称

时间:2013-11-25 16:27:47

标签: java excel apache-poi google-spreadsheet-api

我有一个电子表格,我正在使用org.apache.poi加载到Java程序中。加载数据很好,但我担心有时可能会重新安排列,这会导致我的代码出现问题。该程序希望数据采用特定的列顺序。

有一行包含我一直在抛弃的列名。有没有办法告诉SpreadSheet对象我有一组可以索引的命名列?

例如,我想加载像这样的对象数据(伪代码):

myObject.setName(row.getCell('columnName'));

1 个答案:

答案 0 :(得分:1)

像这样(未经测试),如果列的名称在第0行:

public short getCellIdx(Row nameRow, String colName) {
    for (short idx = nameRow.getFirstCellNum(); idx <= nameRow.getLastCellNum(); idx++) {
        if (rownameRowgetCell(idx).equals(colName))
            return idx;
    }
}

然后

Row nameRow = sheet.getRow(0);
myObject.setName(row.getCell(getCellIdx(nameRow, "columnName")));

如果您有更多的列,您可以更好地将列名散列为Hashmap或类似名称。