springboot实现上传Excel文件与数据库中的数据进行比对

首先先写好文件上传的接口,然后上传需要比对数据的文件,在点击数据比对

下面是一部分数据比对的代码:
后端controller部分:
/**
* 上传Excel文件与数据中的数据进行对比
*
* @param request
* @return
* @throws BiffException
* @throws IOException
*/
@MyOpLog(value = “数据比对”) // 这里添加了AOP的自定义注解
@RequestMapping("/pulation/import2.do")
@ResponseBody
public SpringBootResult importExcel2(HttpServletRequest request) throws BiffException, IOException {
SpringBootResult result = new SpringBootResult();
String savePath = request.getParameter(“savePath”);
String communityId = request.getParameter(“communityId”);
System.out.println(savePath);
List list = new ArrayList<>();
// 创建输入流
InputStream stream = new FileInputStream(savePath);
// 获取Excel文件对象
Workbook rwb = Workbook.getWorkbook(stream);
// 获取文件的指定工作表 默认的第一个
Sheet sheet = rwb.getSheet(0);
int index = 1;

 System.out.println("总行数:" + sheet.getRows());Integer parentId = null;try {int num = 1;// 行数(表头的目录不需要,从1开始)for (int i = 5; i < sheet.getRows(); i++) {// 创建人口对象TbNewPopulation puPopulation = new TbNewPopulation();// 列数System.out.println("第" + i + "行 。。。。。。。。。。。");puPopulation.setRealName(sheet.getCell(5, i).getContents().trim());puPopulation.setIdCard(sheet.getCell(8, i).getContents().trim());Map<String, Object> map = new HashMap<String, Object>();map.put("realName", puPopulation.getRealName());map.put("idCard", puPopulation.getIdCard());map.put("communityId", communityId);if (!U.isEmpty(puPopulation.getRealName()) && !U.isEmpty(puPopulation.getIdCard())) {TbNewPopulation newPopulation = tbNewPopulationService.findByRealNameAndIdCard(map);if (U.isEmpty(newPopulation)) {list.add(index + "、姓名:" + puPopulation.getRealName() + "\t\t身份证号码:" + puPopulation.getIdCard());index++;}}num++;}rwb.close();result.setResultMsg("数据对比成功!");result.setSuccess(true);result.setData(list);return result;} catch (Exception e) {e.printStackTrace();}rwb.close();result.setResultMsg("数据对比失败!");result.setSuccess(false);return result;
}

前端部分jsp页面代码:

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>

<br /> 数据比对<br /> <%@include file="../../resource_css.jsp"%>

上传文件

温馨提示:上传Excel文件必须是系统模板,否则不能导入任何数据

温馨提示:上传Excel文件与系统数据进行比对

取消

<%@include file="../../resource_js.jsp"%>

<script>layui.config({base : '${pageContext.request.contextPath}/assets/layuiadmin/' //静态资源所在路径}).extend({index : 'lib/index' //主入口模块}).use([ 'jquery', 'form', 'layedit', 'layer', 'upload','element' ],function() {$ = layui.jquery;form = layui.form;layedit = layui.layedit, $form = $('form');var layer = layui.layer;var element = layui.element;var upload = layui.upload;form.on('switch(switch)', function(data) {if (data.elem.checked) {$("#path").css("display", "block");$("#type").val(1);} else {$("#path").css("display", "none");$("#type").val(0);$("#path").val("");}});var xhrOnProgress = function(fun) {xhrOnProgress.onprogress = fun; //绑定监听return function() {var xhr = $.ajaxSettings.xhr();if (typeof xhrOnProgress.onprogress !== 'function')return xhr;if (xhrOnProgress.onprogress && xhr.upload) {xhr.upload.onprogress = xhrOnProgress.onprogress;}return xhr;}};//指定允许上传的文件类型upload.render({elem : '#uploader',url : '/admin/pulation/uploadExcel.do',accept : 'file' //普通文件,done : function(res) {if (!res.success) {layer.msg(res.resultMsg);} else {$("#filename").text("上传文件【 "+res.faliureurl+" 】");layer.msg(res.resultMsg, {time : 1500}, function() {//回调/* save(); *///history.go(-1);$("#savePath").val(res.data);$("#import").attr("disabled", false);})}}});});
</script><script type="text/javascript">$(function(){Datatype.date($(':input[data-type="datetime"]'));Datatype.select2($(':input[data-type="select2"]'));$(':input[data-type="percentage"]').TouchSpin({min: 0,max: 1000,initval:'0.0',step: 0.1,decimals: 1,boostat: 5,maxboostedstep: 10,postfix: '‰'});$(':input[data-type="money"]').TouchSpin({min: -10000000.00,max: 10000000.00,initval:'0.00',step: 0.01,decimals: 2,boostat: 5,maxboostedstep: 10,postfix: '¥'});$("#position").bind("focus", function () {map();})})var index = parent.layer.getFrameIndex(window.name); //获取窗口索引function closeIframe(){parent.layer.close(index);}//保存function save() {//加载层var index = layer.load(0, {shade : [ 0.2, '#ffff' ]}); //0代表加载的风格,支持0-2$("#myform").ajaxSubmit({cache : true,type : "post",url : "/admin/pulation/import2.do",data : $('#myform').serialize(), //序列化表单会导致数据传输变慢?//contentType: 'multipart/form-data',async : true,success : function(data) {layer.close(index);if (!data.success) {layer.msg(data.resultMsg);} else {for (i = 0; i < data.data.length; i++) { $("#span1").append(data.data[i] + "<br/>");}//$("#span1").text(data.data + "<br/>");layer.msg(data.resultMsg, {time : 1500}, function() {//回调//history.go(-1);})}}});}</script>

备注:比对完成之后,返回一个结果集显示在前端页面上

springboot实现上传Excel文件与数据库中的数据进行比对相关推荐

  1. vue3采用xlsx库实现上传excel文件,前端解析展示数据(日期转换问题解决)

    项目中需要实现点击导入excel文件后前端进行解析,将数据展示在页面上,确认后上传至后台的功能,为了便于用户查看,可将所有已上传至后台的数据重新展示在页面表格中.具体实现步骤如下: 1.下载插件 np ...

  2. php上传查询excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例

    PHP上传Excel文件导入数据到MySQL数据库示例2020-06-20 00:34:11 最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里 ...

  3. php 上传excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例

    最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里面的数据内容到MySQL数据库的小程序. 要用到的工具: ThinkPHP:轻量级国产PHP开 ...

  4. Django框架(上传Excel文件并读取)

    博主今天整理下Django框架中上传Excel文件并读取 博主是要在管理平台中新增用例的维护功能,想着通过上传Excel文件来展示用例,下面是项目的路径图: 首先先建数据库模型 model.py 可以 ...

  5. 上传excel文件到服务器

    最近遇到了需要上传excel文件,并将excel表中的数据都出来,存到数据库中的需求,今天将步骤整理一下,如下: 一.新建一个html(或jsp页面),如:uploadExcel.html,代码如下: ...

  6. 服务器上传excel文件并读取数据,asp.net上传Excel文件并读取数据的实现方法

    前言 本文主要给大家介绍了关于asp.net上传Excel文件并读取数据的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 实现如下: 前台代码:使用服务端控件实现上传 服务端 ...

  7. vue之 上传 excel文件

    目录 vue之 上传 excel文件 父组件 UploadExcel.vue 效果 vue之 上传 excel文件 父组件 <upload-excel-component :on-success ...

  8. 帆软报表决策系统 上传excel文件

    这个属于二次开发的,比如我要在决策系统中开发一个功能,上传excel文件或者其他文件, 首先前端使用fineUI: BI.File1 = BI.inherit(BI.File,{_defaultCon ...

  9. 实现web前端上传excel文件到flask服务器

    这里有两种方法:1. html方式:2. javascript方式(jQuery+ajax) 第1种方法:html方式 这种方法直接通过设计form表单相关属性实现将excel表格上传到服务器,并在服 ...

最新文章

  1. 关于使用python的open函数时报No Such File or DIr的错误
  2. IDEA Scala自动生成变量类型设置教程
  3. 3.odoo的学习(odoo中的视图:tree视图、form视图、search视图)
  4. Microsoft Operations Management Suite 启用NPM网络性能监视
  5. ISA server的常见身份验证方式
  6. linux用echo显示欢迎信息,我使用过的Linux命令之echo - 显示文本、打印信息
  7. sourcetree使用简介
  8. 2018年第31周-hive支持的Delete和Update的配置
  9. JAVA中解决Filter过滤掉css,js,图片文件等问题
  10. kmeans算法和kmeans++
  11. LeetCode:3Sum_15
  12. Android 自定义万能的抽屉布局(侧滑菜单)GenericDrawerLayout
  13. 免费百度文库下载工具
  14. 深度学习系列43:引入注意力的SAGAN/BigGAN和big_sleep
  15. SAP成都研究院非典型程序猿,菜园子小哥:当我用UI5诊断工具时我用些什么
  16. C++中的trivial destructor和non-trivial destructor
  17. 3dMax 灯光(街道的白天与夜晚)
  18. 怎么拿到签到王者的勋章?
  19. 修复 Ghost win10系统不能启动问题
  20. unordered_mapunordered_set的应用以及底层实现(哈希表)

热门文章

  1. zzuli2206: 小明发福利
  2. 共享单车,真是一面国民照妖镜
  3. PIE-Engine 教程:水稻面积提取2—监督分类(宿迁市)
  4. Linux输出重定向 >> 文件 2>1
  5. 朗读评价语言集锦_课堂评价语言集锦
  6. html dom树的结构图,什么是DOM对象?DOM树形结构介绍
  7. 百宝云注册码系统新手教程
  8. Python模拟栈(stack)进出--实现栈的先进后出
  9. Android截屏一键分享开发与实现方式的反思和总结
  10. 网页方式访问 QQ 小说书架