报错如下:
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();