问题描述
今天使用apipost导入excel表格数据时在读取excel表格数据时报java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell异常
java. lang.IllegalStateException: Cannot get a STRING value from a NUlERIC cell
at org.apache.poi.xssf.usermodel.XSSFCell.typellismatch(XSSFCell. java:1050)
at org. apache. poi.xssf.usermodel.XSSFCell.getRichStringCellValue(XSSFCell. java:404)
at org.apache.poi.xssf.usermodel.XSSFCell.getStringCellValue(XSSFCell. java:356)
原因分析:
查阅资料才发现是因为java在读取cell单元格字符串时,会有number类型的数据,因此需要把它先转化为纯String类型,然后在获取就可以了。
解决方案:
在获取表格数据时,它先转化为纯String类型
就像这样直接获取,就会报Cannot get a STRING value from a NUMERIC cell的错误
//获取单元格
XSSFCell cell = row.getCell(0);
//获取单元格数据
String cellValue = cell.getStringCellValue();
需要在读取excel单元格数据转化之前设置单元格类型为String
//获取单元格
XSSFCell cell = row.getCell(0);
//设置单元格类型
cell.setCellType(CellType.STRING);
//获取单元格数据
String cellValue = cell.getStringCellValue();
这样写完之后,就不会出现之前的错误了,快去试试吧!