Tag Archives: java.lang.IllegalStateException error

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

The error is as follows:

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();