美文网首页
Excel导入异常Cannot get a text value

Excel导入异常Cannot get a text value

作者: Coder编程 | 来源:发表于2020-03-13 11:24 被阅读0次

    POI操作Excel时偶尔会出现Cannot get a text value from a numeric cell的异常错误。

    报错代码:

    Date dd = cell.getDateCellValue();

    报错如图:

    异常报错

    网上解释:

    异常原因:Excel数据Cell有不同的类型,当我们试图从一个数字类型的Cell读取出一个字符串并写入数据库时,就会出现Cannot get a text value from a numeric cell的异常错误。

    解决办法:先设置Cell的类型,然后就可以把纯数字作为String类型读进来了:

    if(row.getCell(0)!=null){
              row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);
              stuUser.setPhone(row.getCell(0).getStringCellValue());
         }
    

    更改后:

    cell.setCellType(Cell.CELL_TYPE_NUMERIC);
    Date dd = cell.getDateCellValue();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    content = sdf.format(dd);
    

    出现了其他问题

    调试的时候发现了其他问题,cell.setCellType(Cell.CELL_TYPE_NUMERIC);之后,原先Cell有数据变得没有值了,cell.getDateCellValue();取值的时候变成了空值。

    最终解决办法

    最终查到了正确的解决办法:

    DataFormatter formatter = new DataFormatter(); 
    String time = formatter.formatCellValue(cell); 
    

    这个time就是取到的值。再进行其他类型转换存入到数据库即可!

    相关文章

      网友评论

          本文标题:Excel导入异常Cannot get a text value

          本文链接:https://www.haomeiwen.com/subject/fhgfshtx.html