关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 12629|回复: 2

Excel 导入功能隐性Bug

[复制链接]
发表于 2014-1-14 11:29:04 | 显示全部楼层 |阅读模式
本帖最后由 Mr_Tao 于 2014-1-14 11:29 编辑

当导入Excel文件中存在为空的Cell时
在读取Excel文件时,
由于
// 行的所有列
Iterator<Cell> cellbody = rown.cellIterator(); 获取当前行的所有非空Cell
但是在While循环遍历时
while (cellbody.hasNext()) {
  Cell cell = cellbody.next();
获取的是下一个非空Cell
  // 这里得到此列的对应的标题
  String titleString = (String) titlemap.get(k); 此处的k = k+1;
  ........
  k=k+1;
}

单元格内容与对应字段不一致导致导入数据错误或者导入失败.
最直接的修改方法为:String titleString = (String) titlemap.get(cell.getColumnIndex());

导入Excel

导入Excel

ExcelUtil.java

ExcelUtil.java
发表于 2014-1-18 11:26:10 | 显示全部楼层
这个不是类型转换出错的问题吗 和你讲的没多大关系吧!

错误信息:
QQ图片20140118112135.jpg
java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Integer.parseInt(Integer.java:468)
    at java.lang.Integer.<init>(Integer.java:620)
    at org.jeecgframework.excel.ExcelUtil.importExcelByIs(ExcelUtil.java:716)

我的解决思路是:
QQ图片20140118112135.jpg
先判读cell的值是否为空 不为空才进行转换 否则给他一个默认值0
if(StringUtils.isNotEmpty(cell.getStringCellValue()))
                                    valInt = new Integer(cell.getStringCellValue());
                                    else
                                    valInt =0;
 楼主| 发表于 2014-1-22 19:50:00 | 显示全部楼层
angangle 发表于 2014-1-18 11:26
这个不是类型转换出错的问题吗 和你讲的没多大关系吧!

错误信息:

不是同一个问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表