最近小编用springboot整合shiro,mybatis等,

做一个大型的办公软件,索性就给大家推荐一个办公化软件必备的功能之一 ,实现在线批量导入的功能 ,那么,究竟该如何快速实现呢?

所使用的导入导出神器就是,-- easypoi;是的,像名字一样,实现起来非常的easy.在这里,也感谢路飞老师的共享.那么跟着我一起学习吧.

一. pom引入依赖

这里我引入的是3.2的版本,这个版本加入了导入后错误行号的获取;

二 手写代码如下:

private static final Logger log = LoggerFactory.getLogger(FurtherDeptController.class);

@ResponseBody

@RequestMapping("/importKeshi")

public R importExcel(@RequestParam("file") MultipartFile file) {

ImportParams importParams = new ImportParams();

// 需要验证

importParams.setNeedVerfiy(true);

Boolean bool = false;

MapresultMap = new HashMap();

try {

ExcelImportResultresult = ExcelImportUtil.importExcelMore(file.getInputStream(), FurtherDeptEntity.class, importParams);

ListsuccessList = result.getList();

ListfailList = result.getFailList();

result.getFailWorkbook();

SysDeptEntity deptEntity1 = sysDeptService.selectById(getDeptId());//获取部门名称

ArrayListlist1 = (ArrayList) sysDeptDao.queryParentDept(deptEntity1);

for (FurtherDeptEntity furtherDeptEntity : successList) {

furtherDeptEntity.setDeptId(list1.get(1).getDeptId());

resultMap.put("successNum", successList.size());

resultMap.put("errNum", 0);

resultMap.put("errMsgList", null);

bool = furtherDeptService.insert(furtherDeptEntity);//存入数据库

log.info("成功列表信息:ID=" + furtherDeptEntity.getId() + furtherDeptEntity.getName() + "-" + furtherDeptEntity.getLeader() + "-" + furtherDeptEntity.getPhone());

}

for (FurtherDeptEntity user : failList) {

resultMap.put("errNum", failList.size());

resultMap.put("errMsgList", failList);

log.info("失败列表信息:" + user.getName());

}

} catch (IOException e) {

e.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

}

if (bool) {

return R.ok().put("msgMap", resultMap);

} else {

return R.error("导入失败了!请联系管理员");

}

}

三下载好导入模板,并且往excel表中填写几条数据,我这里为了验证,就在某几行放入了空值和不符格式的手机号,方便后边验证;

四 开始导入 及导入结果:

导入结果>>>>>>>>>>>>>>>>>>>>>>>>>>

这我们看到,excel表中不符合要求的就导入失败了,而符合的自然就导入成功了.

到里,在线批量导入到数据库的常用功能,本期就介绍完了.如果有什么问题,请加小编微信,或者关注java盆友圈的微信公众号;期待与你公共交流

谢谢!

easypoi 批量导出_浅谈easypoi快速实现excel批量导入相关推荐

  1. 《计算机辅助教学及应用实践研究》,《论文_浅谈计算机辅助教学(定稿)》

    <论文_浅谈计算机辅助教学(定稿)> (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 摘要:计算机辅助教学中要用到多媒体课件 ...

  2. python判断两个对象是否为相等使用的运算符是_Python入门_浅谈逻辑判断与运算符...

    这是关于Python的第6篇文章,主要介绍下逻辑判断与运算符. (一) 逻辑判断: 如果要实现一个复杂的功能程序,逻辑判断必不可少.逻辑判断的最基本标准:布尔类型. 布尔类型只有两个值:True和Fa ...

  3. 如何快速把Excel数据导入SQL数据库

    如何快速把Excel数据导入SQL数据库 最近做测试数据的时候很苦恼,我百度了很久发现没有我想要的答案,不知道是我搜索的问题还是不行最终发现了一种方式可以快速导入数据不用一句一句的去写insert i ...

  4. 3. 机器学习中为什么需要梯度下降?梯度下降算法缺点?_浅谈随机梯度下降amp;小批量梯度下降...

    机器学习三要素 上次的报告中,我们介绍了一种用于求解模型参数的迭代算法--梯度下降法.首先需要明确一点,即"梯度下降算法"在一个完整的统计学习流程中,属于什么?根据<统计学习 ...

  5. python sys模块作用_浅谈Python中的模块

    模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在Python中,一个.py文件就称之为一个模块(Mod ...

  6. opencv运动目标跟踪预测_浅谈多目标跟踪中的相机运动

    ©PaperWeekly 原创 · 作者|黄飘 学校|华中科技大学硕士生 研究方向|多目标跟踪 之前的文章中我介绍了 Kalman 滤波器,这个算法被广泛用于多目标跟踪任务中的行人运动模型.然而实际场 ...

  7. tcp转串口_浅谈串口转以太网技术

    浅谈串口转以太网技术 1.概述串口转以太网目前可以采用串口转以太网模块来实现,变得非常简单易用,但是在该技术中出现的一些新问题.使用误区需要引起注意.串口转以太网并不是简单传输媒介的变化,而是串口到T ...

  8. python的re2和re区别_浅谈Python中re.match()和re.search()的使用及区别

    1.re.match()fvk免费资源网 re.match()的概念是从头匹配一个符合规则的字符串,从起始位置开始匹配,匹配成功返回一个对象,未匹配成功返回None.fvk免费资源网 包含的参数如下: ...

  9. rsync命令_浅谈利用rsync服务的攻击

    本文将根据针对Linux操作系统上不安全的Rsync配置,浅谈如何利用rsync服务进行攻击. 1.什么是RSYNC? Rsync是用于在两个服务器(通常是Linux)之间传输和同步文件的实用程序.它 ...

  10. movielens推荐系统_浅谈推荐系统+3个小时上手python实现(完整代码)

    已经9012年了应该也不需要我解释什么是推荐系统,大致就像头图一样,挖掘用户的喜好,精准的推送给用户ta想要的东西!推荐系统可以说是无处不在了,电商的猜你喜欢,浏览器右侧的推送消息,包括搜索结果的排序 ...

最新文章

  1. 解决Linux环境下Tomcat启动卡住问题
  2. 字符串的展开(洛谷P1098题题解,Java语言描述)
  3. python typing typescript_typescript
  4. 图解!24 张图彻底弄懂九大常见数据结构!
  5. 在redhat/centos的linux环境下安装配置java web运行环境
  6. android init重启service(进程)
  7. Holt-Winters-季节性预测算法
  8. 基于pytorch训练的VGG16神经网络模型完成手写数字的分割与识别
  9. Please use torch.load with map_location=torch.device(‘cpu‘),If you are running on a CPU-only machine
  10. 阿里云ECS和WorldPress + Nginx实现固定连接策略
  11. python显示代码运行时间_python测量代码运行时间方法
  12. php电商开源框架,Sylius 开源PHP电商解决方案
  13. 绩效评估、绩效审计与绩效优化
  14. 把手机当作电脑显示器指导参考
  15. CSS 轮廓(outline)/CSS margin(外边距)/CSS padding(填充)
  16. 2019年6月6日第十五周体育馆团体预约系统UML软件工程项目日志
  17. Java笔记(10)
  18. 利用BCD码计数器和7段码转换器子电路
  19. 蓝牙设备名字和地址ID如何设置
  20. spring boot +mybatis plus +html 最佳实践项目

热门文章

  1. android 微信授权失败,安卓端微信授权失败,返回code=-1
  2. 直观理解Law of Total Variance(方差分解公式)
  3. 技术自查番外篇六:死锁及解决办法
  4. 【必看文件含发帖规范】2020年黑马程序员社区总版规发布!
  5. 本地远程连接服务器调试
  6. pdf2Image Pdf文件存为jpg NodeJs实现
  7. 浏览器的标签栏上网站的小图标的设置方式
  8. WebWork + Spring + iBatis + MySql 实例(Jonson)
  9. 雷达动画在地图显示_本周在我们的雷达上:RebeccaPurple,动画等!
  10. 基于氚云平台的应用开发学习(一)