Error Message:
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)
Reason for error: When reading the cell string, there is data of type number, so it needs to be converted into pure String type, so that no error will be reported.
Error code:
returnStr = cell.getRichStringCellValue().getString();
or the following code
// Get cell data String cellValue = cell.getStringCellValue();
Solution: Set the cell type to String before reading the excel cell data conversion
code show as below:
//set cell type cell.setCellType(CellType.STRING); returnStr = cell.getRichStringCellValue().getString();