JavaWeb开发:Excel文件上传、解析、过滤,并存入数据库(基于SSM框架)

本文介绍了一种通过Excel文件批量导入数据至数据库的方法,并实现了数据更新功能,避免了重复记录。涉及前端文件上传、后端数据处理及Mybatis数据库操作。

一、效果展示

1、初始状态

导入前的页面显示:

在这里插入图片描述此时对应的数据库表:

在这里插入图片描述

2、导入的Excel文件

在这里插入图片描述

3、导入后状态

导入后的页面显示:

在这里插入图片描述
导入后的数据库表:

在这里插入图片描述

4、文件信息过滤更新

  倘若原始数据库中已存在 A 机构(将“结算代码”作为该机构的唯一标识),而我们新上传的文件中也包含了 A 机构的信息,则系统会检测出并直接更新该机构信息。

初始状态:

在这里插入图片描述传入具有相同结算代码(意味着这两家其实为同一家机构)的数据:

在这里插入图片描述
上传后的页面数据:

在这里插入图片描述
  可以看到新上传文件中的“new机构一号”与原始数据中的“机构三号”结算代码相同,因此判断出这两家实则为同一家机构,故而对“机构三号”信息进行更新(如:机构名称、地址等)。

二、实现

1、文件传递

  由于项目的前端采用的是Layui框架,因此Excel在前端的接收将以该框架为例,也可以采用其它方式/框架接收文件,比如:

<input type="file">

以Layui为例:

<div class="layui-inline" style="float: right">
  	<button type="button" id="uploadExcel" class="layui-btn layui-btn-sm layui-btn-normal"  >
        <i class="layui-icon layui-icon-upload-drag"></i>
        &nbsp上传文件
    </button>
</div>

前端接收上传的文件:

    <script type="text/javascript">
        layui.use('upload', function(){
   
   
            var $ = layui.jquery
                ,upload = layui.upload;
            upload.render({
   
   
                elem: '#uploadExcel'	//先前定义的事件id
                ,url: '/department/InputExcel' //改成您自己的上传接口
                ,accept: 'file' //普通文件
                ,exts: 'xls|xlsx' //上传的文件类型
                ,done: function(res){
   
   
                    console.log(res);
                    if(res.msg=="ok"){
   
   
                        layer.msg("文件导入成功",{
   
   icon: 1, time: 1500},function(){
   
   location.reload();});
                    }else{
   
   
                        layer.msg("文件导入失败",{
   
   icon: 2, time: 1500},function(){
   
   location.reload
评论 10
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值