我有一个电子表格,我正在使用org.apache.poi
加载到Java程序中。加载数据很好,但我担心有时可能会重新安排列,这会导致我的代码出现问题。该程序希望数据采用特定的列顺序。
有一行包含我一直在抛弃的列名。有没有办法告诉SpreadSheet
对象我有一组可以索引的命名列?
例如,我想加载像这样的对象数据(伪代码):
myObject.setName(row.getCell('columnName'));
答案 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或类似名称。