2013-11-25 69 views
0

我有一個電子表格,我正在使用org.apache.poi加載到Java程序中。加載數據是好的,但我擔心列可能會重新排列,這會導致我的代碼出現問題。該程序希望數據按特定的列順序排列。從Java電子表格中收集列表名稱

有一行包含我一直扔掉的列名。有沒有辦法告訴SpreadSheet對象,我確實有一組可以索引的命名的列?

例如,我想載入的對象數據,像這樣(僞碼):

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

回答

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"))); 

如果你有一個更大的一組列,您可以更好地散列列名的Hashma p或類似的。

+0

我正在考慮做HashMap,如果沒有一個很好的'poi'解決方案 – Robb

+0

不,我不知道。如果是這樣,他們可能也會那樣做。 –

相關問題