POI操作Excel时报错如下:
java.lang.IllegalStateException: Cannot get a text value from a numeric cell
at org.apache.poi.xssf.usermodel.XSSFCell.typeMismatch(XSSFCell.java:895) ~[poi-ooxml-3.13.jar:3.13]
at org.apache.poi.xssf.usermodel.XSSFCell.getRichStringCellValue(XSSFCell.java:311) ~[poi-ooxml-3.13.jar:3.13]
at org.apache.poi.xssf.usermodel.XSSFCell.getStringCellValue(XSSFCell.java:262) ~[poi-ooxml-3.13.jar:3.13]
异常原因:Excel数据Cell有不同的类型,当我们试图从一个数字类型的Cell读取出一个字符串并写入数据库时,就会出现Cannot get a text value from a numeric cell的异常错误。
此异常常见于类似如下代码中:row.getCell(0).getStringCellValue();
解决办法:先设置Cell的类型,然后就可以把纯数字作为String类型读进来了:
if(row.getCell(0)!=null){
row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);
String str=row.getCell(0).getStringCellValue();
}