jquery easy ui 1.5实现文件导入功能

             昨天向大家展示了easy ui 的导出功能,今天向大家展示下导入的功能,也是通过jxl第三方包实现的。结合网上资源然后自己整理下就ok了,效果图如下:

jquery easy ui 1.5实现文件导入功能_第1张图片

如果不用easy ui组件最好加上一个上传按钮实现功能。


上传后,服务端请求相应,通过fileupload包将上传的文件存入到临时磁盘缓存中,再通过WorkBook.getBook(in),in是输入流,(不知道网上为什么很多都直接上传到本地服务器临时地址中,这样不是很占硬盘内存吗?)读取工作蒲信息。关键代码如下

            DiskFileItemFactory factory = new DiskFileItemFactory();
            factory.setSizeThreshold(4096);// 设置缓冲区大小,这里是4kb
            factory.setRepository(tempFile); // 设置缓冲区目录
            ServletFileUpload upload = new ServletFileUpload(factory);
            upload.setSizeMax(4 * 1024 * 1024);// 设置最大文件尺寸,这里是4MB
            List items = upload.parseRequest(request);

然后读取工作表行数,列数,以及单元格信息。通过反射机制,将属性一一对应到列中,反射这个方法我是结合网上提取了一个公共类,直接将属性名称,对象名称,属性值传入,就可以一一将单元格内容存入到对应的属性中,( 注意:excel列的字段和map对象要一一对应),关键代码和效果图如下:

 for (int r = 1; r < rows; r++) {// 从第二行追加记录
                user = new TUser();
                for (int col = 0; col < columns; col++) {// 列数添加数据
                    Cell cell = sheet.getCell(col, r);
                    for (String s : protopy.keySet()) {
                        if (Integer.parseInt(s) == col) {
                            System.out.print(cell.getContents() + "  -");// 输出单元格数据
                            AssignValueForAttributeUtil.setAttrributeValue(user, protopy.get(s).toString(), cell.getContents());
                            break;
                        }
                    }
                }
                userDao.addUser(user);
                System.out.println();
            }

然后excel数据导入到数据库中。


jquery easy ui 1.5实现文件导入功能_第2张图片

ok,经过两天整理导入导出就ok了,以后准备用这个做个具体的项目发布到网站中,谢谢大家交流观看。



你可能感兴趣的:(java前端框架)