我正在创建一个用于将.xlsx
文件转换为.Json的java程序。我已使用以下条件验证单元格数据格式是否为数字。
else if (rw.getCell(j).getCellType() == Cell.CELL_TYPE_NUMERIC) {
key = "" +sht.getRow(0).getCell(j).getNumericCellValue();
}
我仍然收到此错误:
IllegalStateException:无法从STRING单元格获取NUMERIC值。
这怎么可能?
答案 0 :(得分:0)
如果此行引发异常:
key = "" +sht.getRow(0).getCell(j).getNumericCellValue();
这意味着sht.getRow(0).getCell(j)
的类型不是数字。
在if clause
和if block
中使用相同的变量,否则它将成为永无止境的错误来源。
Row row = sht.getRow(0);
Cell cell = row.getCell(j);
...
String key = null;
else if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC) {
key = "" +cell.getNumericCellValue();
}
所以现在有2例
另外,如果您在if:
之前添加以下打印语句,我会很想知道您得到了什么输出?System.out.println("Cell.CELL_TYPE_NUMERIC: "+Cell.CELL_TYPE_NUMERIC);
System.out.println("rw.getCell(j).getCellType(): "+rw.getCell(j).getCellType());
System.out.println("sht.getRow(0).getCell(j).getCellType(): "+sht.getRow(0).getCell(j).getCellType());
我希望它们不会完全一样。