报错如下:

Exception in thread "main" java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell
 at org.apache.poi.xssf.usermodel.XSSFCell.typeMismatch(XSSFCell.java:1050)
 at org.apache.poi.xssf.usermodel.XSSFCell.getRichStringCellValue(XSSFCell.java:404)
 at org.apache.poi.xssf.usermodel.XSSFCell.getRichStringCellValue(XSSFCell.java:70)
 at com.jawasoft.testDemo.ExcelUtil.readExcel(ExcelUtil.java:81)
 at com.jawasoft.testDemo.ExcelUtil.readExcelToObj(ExcelUtil.java:46)
 at com.jawasoft.testDemo.ExcelUtil.main(ExcelUtil.java:29)

报错原因:在读取cell单元格字符串时,有number类型的数据,因此需要把它转化为纯String类型,这样就不会报错了。

报错的代码:

returnStr = cell.getRichStringCellValue().getString();

或者如下代码

//获取单元格数据
String cellValue = cell.getStringCellValue();

解决办法:在读取excel单元格数据转化之前设置单元格类型为String

代码如下:

//设置单元格类型
cell.setCellType(CellType.STRING);
returnStr = cell.getRichStringCellValue().getString();

 

posted on 2022-05-30 09:42  周文豪  阅读(1008)  评论(0编辑  收藏  举报