Excel的批量导入是很常见的功能,这里采用 Jxl实现,数据量或样式要求较高可以采用 poi

框架环境:Spring + SpringMvc(注解实现)

  1. 首先导入依赖jar包

    <dependency><groupId>net.sourceforge.jexcelapi</groupId><artifactId>jxl</artifactId><version>2.6.10</version>
    </dependency>
    
  2. 前端页面–jsp(enctype必须为"multipart/form-data")

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %><div style="width: 600px;"><form class="form" method="post" data-submit="ajax" enctype="multipart/form-data" action="/hpersonnel/import.do">//<input type="hidden" name="id" value="<%= request.getParameter("id") %>" />          <div class="form-group">               <label class="form-label w100"> </label><label class="form-label ">1、下载模板。<a class="btn btn-default submit-form" href="/template/personnel.xls">下载</a></label></div><div class="form-group"><label class="form-label w100"> </label><label class="form-label ">2、按照模板表头填写内容,请勿修改文件格式</label></div><div class="form-group"><label class="form-label w100"> </label><label class="form-label ">3、<input type="file" name="file" /></label></div>           <div class="btns dialog-button"><button class="dialog-btn-yes" type="submit">提交</button><button class="dialog-btn-no" type="button" onclick="app.closeDialog(this)">取消</button></div> </form>
    </div>
  3. 视图模板

  4. Controller

    @ResponseBody
    @RequestMapping(value = "import")
    public Object import(MultipartFile file) {    if (file.isEmpty()) {return ResultObject.failure("文件为空");}ResultObject result = new ResultObject();//记录集合List<Map> mapList = new ArrayList<Map>();//校验结果boolean reqFlag = true;//回复消息String reqMsg = "";//报错消息数Integer error = 0;//解析文件try {//转换成输入流InputStream is = file.getInputStream();//得到excelWorkbook workbook = Workbook.getWorkbook(is);//得到sheetSheet sheet = workbook.getSheet(0);//得到列数int colsNum = sheet.getColumns();//得到行数int rowsNum = sheet.getRows();if (rowsNum == 1) return ResultObject.failure("没有数据");//单元格Cell cell;//数据校验for (int i = 1; i < rowsNum; i++) {//第一行是标题,所以i从1开始Map<Integer, Object> map = new HashMap<Integer, Object>();for (int j = 0; j < colsNum; j++) {cell = sheet.getCell(j, i);//第一个参数是列.第二个参数是行if (j < 4 && "".equals(cell.getContents())) { //----这里判断必填项(前4列)reqFlag = false;reqMsg += "第" + (i + 1) + "行错误,错误信息:" + "必填项缺漏";reqMsg += "<br>";error++;break;}String cellString = cell.getContents();cellString = cellString.trim();switch (j) {case 1: {//进行校验处理,例如手机号if (!StringUtil.isMobileNo(cellString)) {reqFlag = false;reqMsg += "第" + (i + 1) + "行错误,错误信息:" + "联系电话有误";reqMsg += "<br>";error++;} else {map.put(j, cellString);}break;}case 2: { ###  break; }case 3: { ###  break; }//无需校验,归入defaultdefault: {map.put(j, cell.getContents());}}}if (reqFlag) {//校验通过mapList.add(map);}}} catch (IOException e) {e.printStackTrace();} catch (BiffException e) {e.printStackTrace();}//入库try {if (mapList.size() > 0 && reqFlag) {//此处try,catch应优化为事务处理maplist实现全记录成功或失败result.setSuccess("提交成功");} else {               if (error > 10) {//设置要显示的错误数int index = StringUtil.getIndex(reqMsg, 10, "<br>");reqMsg = reqMsg.substring(0, index + 4);reqMsg += "未显示错误数:" + (error - 10) + "条";reqMsg += "<br>";}result.setFailure(reqMsg);}} catch (Exception e) {result.setFailure("入库错误,请联系管理员!");e.printStackTrace();}return result;
    }
    

Java实现Excel批量导入数据相关推荐

  1. 【转帖】Java实现Excel批量导入数据

    这篇文章主要为大家详细介绍了Java实现Excel批量导入数据,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 Excel的批量导入是很常见的功能,这里采用Jxl实现,数 ...

  2. SpringMVC框架通过Excel批量导入数据

    文章目录 SpringMVC框架通过Excel批量导入数据 1.导入需要的jar包 2.配置文件 3.创建Java对象类 4.解析Excel表格数据的工具类 5.前端请求 6.Controller处理 ...

  3. Spring Boot 实现excel 批量导入数据(模板下载 ->数据导入->导入失败表格下载)

    批量导入数据以用户为例[不贴数据库操作代码,都是简单的插入和查询操作自己写] 1 导入依赖 2 批量导入模板下载 3 批量导入数据 准备工作 实现代码 测试接口 4 下载导入失败表格 5 实体类 6 ...

  4. java使用POI实现Excel批量导入数据。

    1.背景 项目中有使用easypoi,处理常规excel问题,但是现在有个需求,需要动态生成导出的报表字段.同时,根据导入的excel,增加数据信息.(有可能会出现,导入的报表是几天前下载的,不会最新 ...

  5. excel批量导入数据

    这个功能也是我以前项目中经常用到的,感觉很实用,必须拿来分享下: excel进行批量导入数据,结合struts2+ajax 导入的视图:batchAdd.ftl(视图无关紧要的,可以换成其他任何视图, ...

  6. Springboot Excel批量导入数据

    POI处理Excel <!-- poi处理excel --><dependency><groupId>org.apache.poi</groupId>& ...

  7. Java实现Excel批量导入数据库

    springboot实现Excel批量导入数据库 前言:项目开发中最容易碰到的需求即将Excel数据批量上传到数据库中存储 -> Java实现,Excel数据表,MySQL数据库,具体步骤如下- ...

  8. EXCEL批量导入数据MVC

    这里简单实现EXCEL的批量导入 直接看代码,里面有注释 前端页面实现 @{ ViewBag.Title = "批量添加数据"; //Layout = null; } href=& ...

  9. java实现excel批量导入图片到服务器

    使用easypoi批量导入excel数据到数据库,excel中的图片上传到服务器 1.引入依赖 2.实体类demo 3.测试的excel文档样式 5.服务器文件操作工具类 6.IDUtils工具类 7 ...

最新文章

  1. VC++从txt文本中读取字符和数字
  2. 录制声音并且播放录取的声音
  3. ThinkPHP中的视图二
  4. python编辑器和终端_从python curses程序运行终端文本编辑器
  5. B端产品方法论:从流量思维转向客户服务
  6. 机器学习模型 知乎_机器学习-模型选择与评价
  7. c# 与 c++ 界面同框终极技巧
  8. PageAdmin建站系统模板制作教程1:Razor简介
  9. 软件关闭excel但是进程中还存在原因_从软件视角看波音737事故系列述评之一:软件普适化下的能力建设...
  10. eclipse插件之——PropertiesEditor
  11. 数字盲打怎么练_数字键盘区的功能及指法技巧
  12. 安装inotify-tools监控工具
  13. 8th 本周工作量及进度统计
  14. LocalDateTime计算两个日期时间差
  15. 汇添富基金总经理张晖:以高质量发展打造中国最受认可的资产管理品牌
  16. unix下ODBC连接MySQL编程_通过unixODBC访问PostgreSQL数据库
  17. 计算机金山打字基础,金山打字通电脑版
  18. 网线水晶头制作的线序
  19. 百度蜘蛛IP功能说明初稿
  20. 这些那些非代码之罪的坑

热门文章

  1. java编写的atm机项目结题报告_《计算机学院视频教程网站的创建》教学研究项目结题报告.pdf...
  2. 甲方安全之仿真钓鱼演练(邮件+网站钓鱼)
  3. aix查看oracle客户端位数,查看系统硬件/软件配置/系统位数
  4. [league/climate]一个功能健全的命令行功能操作库
  5. yolov5-6.0训练自己的模型
  6. 五种方法让你的软文像新闻
  7. 稳定高效Linux虚拟主机业务完整解决方案
  8. 华硕笔记本r414u怎么安装键盘_华硕笔记本怎么安装系统|华硕R414UV7200安装Win10专业版64位教程...
  9. CPU综合设计实验报告
  10. 20个计算机英语关键词,英语微课堂:20个专业体育英语术语,秒懂赛场关键词!...