我想讀取一個Excel文件,其中也有一些公式單元格, 所有數據,但我不知道哪個單元格是公式單元格。我怎樣才能讀取細胞的所有值,而不管細胞的類型如何。如何從公式單元格讀取單元格值使用apache poi
我的代碼看起來像這樣
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
while (rows.hasNext()) {
row = (HSSFRow) rows.next();
Iterator cells = row.cellIterator();
while (cells.hasNext()) {
cell = (HSSFCell) cells.next();
if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
ar.add(cell.getStringCellValue());
} else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
ar.add(cell.getNumericCellValue());
}else if (cell.getCellType() == HSSFCell.CELL_TYPE_FORMULA) {
ar.add(evaluator.evaluateFormulaCell(cell));
} else {
ar.add("");
}
}
}
我得到的公式的單元格值爲0
嗨Gagravarr,感謝您的答覆。但上面的代碼是給javax.servlet.ServletException:java.lang.StackOverflowError ...所以我寫了一個更多的方法handelCell2()和調用handelCell2()的公式條件。現在我沒有例外..但仍然沒有得到公式單元格的值...... –
cell.getCachedFormulaResultType()返回0 ......... –
0表示它是數字。在這種情況下,只需調用cell.getNumericCellValue() –