目录
一、效果展示
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>
 上传文件
</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

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





