java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell


異常

在使用POI讀取Excel文件內容時,發生了異常,報錯如下:

大概意思是不能從一個數值的列獲取一個字符串類型的值,我使用下面的代碼來獲取單元格的值:

//此處省略N行代碼
String cellValue = sheet.getRow(6).getCell(6).getStringCellValue();
//此處省略N行代碼

使用了getStringCellValue()方法來獲取值,POI會判斷單元格的類型,如果非字符串類型就會拋出上面的異常。

如下圖,讀取綠色框中的值不拋異常,讀取紅色框中值出拋出異常,POI認為這是一個數字。

解決

解決方法是在讀取某單元格時,使用setCellType()方法先將該單元格的類型設置為STRING,代碼如下:

//此處省略N行代碼
sheet.getRow(6).getCell(6).setCellType(CellType.STRING);
String cellValue = sheet.getRow(6).getCell(6).getStringCellValue();
//此處省略N行代碼

這樣就會按字符串類型來讀取單元格了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM