Excel導入異常Cannot get a text value from a numeric cell解決

POI操作Excel時偶爾會出現Cannot get a text value from a numeric cell的異常錯誤。

報錯代碼:

Date dd = cell.getDateCellValue();

報錯如圖:

異常報錯

網上解釋:

異常原因:Excel數據Cell有不同的類型,當我們試圖從一個數字類型的Cell讀取出一個字符串並寫入數據庫時,就會出現Cannot get a text value from a numeric cell的異常錯誤。

解決辦法:先設置Cell的類型,然後就可以把純數字作爲String類型讀進來了:

if(row.getCell(0)!=null){
          row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);
          stuUser.setPhone(row.getCell(0).getStringCellValue());
     }

更改後:

cell.setCellType(Cell.CELL_TYPE_NUMERIC);
Date dd = cell.getDateCellValue();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
content = sdf.format(dd);

出現了其他問題

調試的時候發現了其他問題,cell.setCellType(Cell.CELL_TYPE_NUMERIC);之後,原先Cell有數據變得沒有值了,cell.getDateCellValue();取值的時候變成了空值。

最終解決辦法

最終查到了正確的解決辦法:

DataFormatter formatter = new DataFormatter(); 
String time = formatter.formatCellValue(cell); 

這個time就是取到的值。再進行其他類型轉換存入到數據庫即可!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章