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

Posted codecat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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行代码

这样就会按字符串类型来读取单元格了。

 

以上是关于java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell的主要内容,如果未能解决你的问题,请参考以下文章