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

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

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

查看: 9368|回复: 1

excel导入问题提交

[复制链接]
发表于 2013-6-3 17:38:24 | 显示全部楼层 |阅读模式
3.1的时候测试一个excel的导入
一直发现导入不进去
各种跟 各种debug 最后终于发现问题了
然后等3.2看是否会改掉
昨天3.2一出来马上看了下
excel导入很多问题都修复了
这个问题应该还是存在,但是几率应该很低
我这边wps 和excel都用 不知道是不是由于 excel 和wps 兼容的问题

问题如下

近期碰到一个excel 有一列没有值 不是 空值 测试的时候 发现怎么导入都导入不进去  跟踪发现的这个问题
问题根源在于Iterator 的next 这个next
假设 cellbody 1 2 3 4 列  1 3 4 列有值 2 列 没有值 不是空值
那么对应的titleString  是4个
这个时候 Iterator 的next 在2列时 nowid 会直接跳到3 这样cellbody 就只循环了3次
也就是说这个时候会把 excel 第3列的值写入到 java entity对应的 第2列里面去
ExcelUtil 661行
// 用来格式化日期的DateFormat
                        // SimpleDateFormat sf;
                        while (row.hasNext()) {
                                // 标题下的第一行
                                Row rown = row.next();
                                // 行的所有列
                                Iterator<Cell> cellbody = rown.cellIterator();
                                // 得到传入类的实例
                                Object tObject = pojoClass.newInstance();
                                int k = 0;
                                // 遍历一行的列
                                while (cellbody.hasNext()) {
                                        Cell cell = cellbody.next();
                                        // 这里得到此列的对应的标题
                                        String titleString = (String) titlemap.get(k);
                                        // 如果这一列的标题和类中的某一列的Annotation相同,那么则调用此类的的set方法,进行设值
                                        if (fieldSetMap.containsKey(titleString)) {
                                                Method setMethod = (Method) fieldSetMap.get(titleString);
                                                // 得到setter方法的参数
                                                Type[] ts = setMethod.getGenericParameterTypes();
                                                // 只要一个参数
                                                String xclass = ts[0].toString();


这里不知道是就我碰到这个问题
还是因为wps 和 excel 兼容性产生的问题

其实解决方法也很简单 k 值用 该cellbody 的 nowid 替换 问题就解决了
但是不知道这样修改会不会对后面的写入造成影响

近期用jeecg作了个小项目
感觉方便了很多
也希望jeecg越发展越好





发表于 2013-6-5 19:08:44 | 显示全部楼层
我碰到的更怪,做了个实例,基本就是原样照搬例子,发现IE可导入,没问题,但FIREFOX导不进去。但例子程序无论ie还是firefox都OK。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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