[POI]讀取Excel儲存格小技巧

Apache的POI提供了Java存取Excel的方法,但是在讀取儲存格時,會受到Excel儲存格格式的影響,在POI中提供了多種儲存格格式的讀取方法。



我們可以先透過cell.getCellType()來判斷格式,目前有提供以下幾種Type

Cell.CELL_TYPE_BLANK
Cell.CELL_TYPE_BOOLEAN
Cell.CELL_TYPE_ERROR
Cell.CELL_TYPE_FORMULA
Cell.CELL_TYPE_NUMERIC
Cell.CELL_TYPE_STRING

再分別透過getStringCellValue()、getNumericCellValue()來取得資料。

但是有時候我們需要的是整數,例如 2,取出來的值會變成2.0。或者是日期,ex:2011/10/19,取出來也不是你所看到的日期格式。

如果想要所見即所得,就是把所有資料當作字串處理,不僅免去判斷的麻煩,也不需要再針對讀出來的資料做轉換。做法就是讀取Cell前,先將Cell設定為字串格式:cell.setCellType(Cell.CELL_TYPE_STRING)

搞定收工!!

2011.11.22補充 
Excel如果有Date欄位,轉換成字串會變成一段數字,要轉換為標準日期需要加上以下這段
cell.setCellType(Cell.CELL_TYPE_STRING);
String value = cell.getStringCellValue().trim();
Date date = org.apache.poi.ss.usermodel.DateUtil.getJavaDate(Double.parseDouble(value)

0 意見: