开发者社区 问答 正文

Java POI 把Excel里面的数据读取出来添加到数据库里面?报错

报错:Cannot get a text value from a numeric cell

是读取的时候,Excel有的单元格里面不是String类型的,会报这个错误。

readCell.setCellType(HSSFCell.CELL_TYPE_STRING); // 设置了单元格的类型
System.out.print(readCell.getRichStringCellValue()+"\t");

还是会有这个错误,上网搜了一下。有人这样建议:通过switch语句,单元格里面是什么类型就返回那个类型的值。请教大神,还有没有别的方法?

展开
收起
爱吃鱼的程序员 2020-06-22 15:18:34 677 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    应该就是类型有问题,试试其他的类型设置方法试过了,由于Excel文件里面有很多种类型的值。强制设置为一种类型的话,都报错。之前我导出Excel设置类型没有问题,现在是让用户自己创建Excel,然后导入用户创建的Excel文件,设置类型就会报错!得到类型,然后返回指定类型的值,没有别的办法哦。谢谢!就是按类型读取,目前似乎没有发现其他办法。嗯,貌似只能是这样了。只能switch了,没有好办法!嗯,确实!getStringCellValue();嗯。首先得到行,然后:row.getCell(0).getStringCellValue();直接设置单元格类型为字符串型再读取;不过要判断一下,空单元格会有奇怪的值,不知道为啥。判断如果是空的话,就直接赋值""

    2020-06-22 15:18:50
    赞同 展开评论