读取Excel表格报错问题分析总结(用apache POI读取,表格稍微改动就报错导入不进去)
来源:互联网 发布:js混淆还原工具 编辑:程序博客网 时间:2024/05/16 15:20
首先是建立在用apachePOI解析Excel时一定几率是能成功解析导入的,如果一点也不能的话,也可以参考看看我总结的原因,也许也是导致你屡次导入不能的原因之一。
这个问题是前天客户反应的,不用下载的好的模版套进内容再导入的话就报错,怎么也导入不进去,客户即想用从其他直接导出的数据导入我们的产品中用想能自己复制一些其他的内容到自己建立的excel表格中导入进去。今天晚上特意抽出时间来总结一产生这个问题的几个原因。
1、第一个原因就是,我最后发现我们的产品中excel导入这个组件(用apache POI实现)里边出现的问题,进一步跟踪,发现:
switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_STRING: strCell = "'" +cell.getStringCellValue()+ "'"; break; case HSSFCell.CELL_TYPE_NUMERIC: if (HSSFDateUtil.isCellDateFormatted(cell)){ String temp = String.valueOf(sdf.format(cell.getDateCellValue())); strCell="to_date('"+temp+"','yyyy_mm_dd')"; }else{ strCell = String.valueOf(cell.getNumericCellValue()); } break; }
到了这个case匹配时就有错误了,但是就是没抛出异常信息,纳闷了,调试几次都是这样,看了官方的API文档:
getStringCellValue
java.lang.String getStringCellValue()
Get the value of the cell as a stringFor numeric cells we throw an exception. For blank cells we return an empty string. For formulaCells that are not string Formulas, we throw an exception.
For numeric cells we throw an exception. For blank cells we return an empty string. For formulaCells that are not string Formulas, we throw an exception.
意思是如果单元格不是能解析的字符串格式的话,我们会抛出异常,为空的话就返回一个空字符串。看来不是调用getStringCellValue出的问题,不过一读取到为空的单元格时就出现这个问题。最后发现程序上没有写如果2种格式都匹配不上的情况(声明:这块代码不是我写的哦),于是加上:
<span style="font-size:18px;"> default:strCell="''";</span>
问题才解决了一个原因。
2、第二个原因就是excel表格中日期类型的格式不对,应该选中日期所在列,右击点击菜单里的单元格格式,由常规设置为日期格式。
3、第三个原因就是excel为空的单元格,也要设置一下单元格格式,为字符即可,否则常规格式的空数据excel解析时未能匹配成STRING。
4、第四个原因就是excel表格中删除数据时,尤其是最下边删除时,不是选中删除的内容,而是选中删除的内容所在的行,否则在解析时还是以为有数据呢只不过数据为空而已,这就很容易造成错误。
5、还有两个原因和我们业务数据(数据判重和不为空)要求有关就不再详细说了。
以上原因,仅供大家参考。
转载请注明—作者:Java我人生(陈磊兴) 原文出处:http://blog.csdn.net/chenleixing/article/details/43742211
最后,认真看过的网友们,大神们,如有感觉我这个程序猿有哪个地方说的不对或者不妥或者你有很好的提议或者建议或点子方法,还望您大恩大德施舍n秒的时间留下你的宝贵文字(留言),以便你,我,还有广大的程序猿们更快地成长与进步.......
- 读取Excel表格报错问题分析总结(用apache POI读取,表格稍微改动就报错导入不进去)
- POI读取excel表格
- poi读取excel表格
- POI 读取Excel(2003)表格
- Java poi读取Excel表格
- poi 3.8读取excel表格
- POI读取Excel表格测试
- POI 操作Excel表格系列2 --- 读取Excel表格
- poi读取excel表格格式问题解决方案
- Workbook POI 对Excel表格的读取
- 使用 POI 读取 Excel 表格数据
- java poi读取excel表格数据
- [Java]通过Poi包读取Excel表格
- Java利用POI读取Excel表格
- java maven poi 读取excel表格
- poi表格读取
- python读取excel导入word表格
- 用xlrd读取excel表格(python)
- HDU - 1239 - Calling Extraterrestrial Intelligence Again (素数相关~)
- HDU1760 A New Tetris Game【DFS】【博弈】
- modelsim 仿真中遇到的问题
- 文献阅读----《病理语音的 S 变换特征及其提取方法》(笔记篇)
- hdu 2079 选课时间(题目已修改,注意读题) 多重背包
- 读取Excel表格报错问题分析总结(用apache POI读取,表格稍微改动就报错导入不进去)
- HTML 5 标签
- Android Service和Activity基于串口蓝牙模块的双向通信【第二篇】
- codeforces 18E Flag 2 (dp)
- [mac]命令 lipo
- ldconfig用法小结
- C#程序员整理的Unity 3D笔记(九):Unity 3D测试浅析
- 就业市场状况指数(LMCI)和非农数据
- Visual Studio下使用jQuery的10个技巧