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 意見:
張貼留言