一.导入过程(基本就是导出的逆向过程)

1.存在一个包含数据的Excel文件

2.将文件作为参数传到服务器

3.服务器解析文件,并将数据封装成实体对象

4.将对象持久化更新到数据库

5.刷新页面导入成功

二.具体代码实现

1.前端

  1. <form id="uploadForm" action="user/upload.do" method="post" enctype="multipart/form-data">
  2. <table>
  3. <tr>
  4. <td>下载模版:</td>
  5. <td><a href="javascript:void(0)" class="easyui-linkbutton" onclick="downloadTemplate()">导入模版</a></td>
  6. </tr>
  7. <tr>
  8. <td>上传文件:</td>
  9. <td><input type="file" name="userUploadFile"></td>
  10. </tr>
  11. </table>
  12. </form>
  13. </div>

    2.

  1. @RequestMapping("/upload")
  2. public void upload(@RequestParam(value="userUploadFile",required=true)MultipartFile userUploadFile,HttpServletResponse response)throws Exception{
  3. HSSFWorkbook wb=new HSSFWorkbook(userUploadFile.getInputStream());
  4. HSSFSheet hssfSheet=wb.getSheetAt(0); // 获取第一个Sheet页
  5. if(hssfSheet!=null){
  6. for(int rowNum=1;rowNum<=hssfSheet.getLastRowNum();rowNum++){
  7. HSSFRow hssfRow=hssfSheet.getRow(rowNum);
  8. if(hssfRow==null){
  9. continue;
  10. }
  11. User user=new User();
  12. user.setName(ExcelUtil.formatCell(hssfRow.getCell(0)));
  13. user.setPhone(ExcelUtil.formatCell(hssfRow.getCell(1)));
  14. user.setEmail(ExcelUtil.formatCell(hssfRow.getCell(2)));
  15. user.setQq(ExcelUtil.formatCell(hssfRow.getCell(3)));
  16. Connection con=null;
  17. con=dbUtil.getCon();
  18. userDao.userAdd(con, user);
  19. dbUtil.closeCon(con);
  20. }
  21. }
  22. wb.close();
  23. JSONObject result=new JSONObject();
  24. result.put("success", "true");
  25. ResponseUtil.write(response, result);
  26. }

              3.

  1. public int userAdd(Connection con,User user)throws Exception{
  2. String sql="insert into t_user values(null,?,?,?,?)";
  3. PreparedStatement pstmt=con.prepareStatement(sql);
  4. pstmt.setString(1, user.getName());
  5. pstmt.setString(2, user.getPhone());
  6. pstmt.setString(3, user.getEmail());
  7. pstmt.setString(4, user.getQq());
  8. return pstmt.executeUpdate();
  9. }

  

POI实现数据导入功能的更多相关文章

  1. c#直接调用ssis包实现Sql Server的数据导入功能

    调用ssis包实现Sql Server的数据导入功能网上已经有很多人讨论过,自己参考后也动手实现了一下,上一次笔者的项目中还用了一下这个功能.思前想后,决定还是贴一下增强记忆,高手请54. 1.直接调 ...

  2. poi大数据导入解决方法

    This one comes up quite a lot, but often the reason isn't what you might initially think. So, the fi ...

  3. .NET MVC 学习笔记(六)— 数据导入

    .NET MVC 学习笔记(六)—— 数据导入 在程序使用过程中,有时候需要新增大量数据,这样一条条数据去Add明显不是很友好,这时候最好就是有一个导入功能,导入所需要的数据,下面我们就一起来看一下导 ...

  4. NPOI EXECL数据导入,日期格式调用DateCellValue取值时,二次或后续调用出现报错!

    NPOI version:2.5.1 EXCEL数据导入功能,第一次调用DateCellValue获得日期值OK,二次或后续调用出现报错"函数求值需要运行所有线程" 初步怀疑是版本 ...

  5. 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据

    1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...

  6. .Net之Nopi Excel数据导出和批量导入功能

    一.介绍NPOI和编写demo的原因 1.Npoi是什么: 它是一个专门用于读写Microsoft Office二进制和OOXML文件格式的.NET库,我们使用它能够轻松的实现对应数据的导入,导出功能 ...

  7. POI事件模型处理execl导入功能(只支持07版本的execl)

    由于通过new XSSFWorkbook 这种方式导入导致生产环境端口宕机.通过dump文件和javacore文件分析是导入功能导致的.解决办法:自己通过网上写的工具类,不知道是否存在bug. pac ...

  8. .Net+Vue3实现数据简易导入功能

    在开发的过程中,上传文件或者导入数据是一件很常见的事情,导入数据可以有两种方式: 前端上传文件到后台,后台读取文件内容,进行验证再进行存储 前端读取数据,进行数据验证,然后发送数据到后台进行存储 这两 ...

  9. 基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能

    思路: 1.首先,页面前端,上传附件,提交给后台,并带一个随机性的参数(可以用时间戳): 2.后端接收附件,做一系列的逻辑处理,无误后,将对应的文件存储在上传的目录下: 3.然后前端,上传附件成功后, ...

随机推荐

  1. 02基于python玩转人工智能最火框架之TensorFlow人工智能&深度学习介绍

    人工智能之父麦卡锡给出的定义 构建智能机器,特别是智能计算机程序的科学和工程. 人工智能是一种让计算机程序能够"智能地"思考的方式 思考的模式类似于人类. 什么是智能? 智能的英语 ...

  2. window.onload与$(document).ready()

    window.onload是原生JS事件,$(document).ready()是Jquery实现的与其作用类似的事件. 二者区别如下: 1.执行时间不同 $(document).ready()是DO ...

  3. mvn+spring+webapp模板

    idea新建项目,选择maven-archetype-webapp 在main目录下创建java  resource 文件夹,赋予特殊文件夹 pom.xml 添加 <!--Spring框架核心库 ...

  4. Spring Cloud 与 Dubbo、Spring Cloud 与 Docker、Spring Cloud 与 Kubernetes 比较

    出处:http://dockone.io/article/4142

  5. 大数据时代——为什么用HADOOP?

    转载自:http://www.daniubiji.cn/archives/538 什么叫大数据 “大”,说的并不仅是数据的“多”!不能用数据到了多少TB ,多少PB 来说. 对于大数据,可以用四个词来 ...

  6. shopnc-setNcCookie-后台验证码

    function setNcCookie($name, $value, $expire='3600', $path='', $domain='.a.cn', $secure=false){ if (e ...

  7. mysql exists及not exists的使用

    对exists及not exists的使用根据下面的示例进行解释 如sql: select sname from student where exists (select * from score)) ...

  8. MySQL 5.7 优化SQL提升100倍执行效率的深度思考(GO)

    系统环境:微软云Linux DS12系列.Centos6.5 .MySQL 5.7.10.生产环境,step1,step2是案例,精彩的剖析部分在step3,step4. 1.慢sql语句大概需要13 ...

  9. Windows 消息【二】窗口函数

    前一篇文章讲到非队列消息会直接把消息Dispatch到窗口函数上,窗口函数长什么样? //就是一个大case分支 //要想拦截消息,override窗口函数是一个办法! procedure TCust ...

  10. aircrack 破解wifi密码

    分享一个用aircrack破解wifi密码的步骤: 1.新建一个终端 airmon-ng check kill airmon-ng start wlan0 airodump-ng wlan0mon 此 ...