upload.render({
elem: '#LAY-excel-upload', //绑定元素
url: MODULE_PATH + '/upload',//上传接口(PS:这里不用传递整个 excel)
accept: 'file',
auto: false, //选择文件后不自动上传 点击按钮触发
data:{"canshu":"参数"},//@RequestParam(value="canshu", required = false)String canshu 后台接收
bindAction: '#uploadAction', //指向一个按钮触发上传
exts: 'xls|xlsx',
choose: function (obj) {// 选择文件回调
var files = obj.pushFile();
<!-- ***************************************************************************** -->
//上传时 文件存进layui的文件上传队列,会出现重复校验第一次上传文件,设置校验删除之前历史文件
var lastX=0;
var fileCount=0;
//遍历,获取最后一个文件的下标索引
for (var x in files) {
//x是文件对象的唯一索引,是个字符串,例如:1612418956647-0
lastX=x;
fileCount++;
}
if(fileCount>1){
//删除其他文件,保留最后一个文件
for (var x in files) {
if(x != lastX){
delete files[x];
}
}
}
<!-- ***************************************************************************** -->
var fileArr = Object.values(files);// 注意这里的数据需要是数组,所以需要转换一下
uploadExcel(fileArr); //上传校验 如果只需要最新选择的文件,可以这样写: uploadExcel([files.pop()])
},
before: function(obj){
layer.load();
},
done: function(res, index, upload){
layer.close(layer.load());
//导入后 回调函数
},
error:function(){
layer.close(layer.load());
}
});
function uploadExcel(files) {
try {
excel.importExcel(files, {
// 可以在读取数据的同时梳理数据
fields: {
'nickname': 'A',
'idNumber': 'B', 'email': 'C',
'phone': 'D'
}
}, function(data) {
var emptyRow="";
fileTag=true;
fileIsNull=true;
if(data[0].sheet1.length<2) {//length : 0空文件 1只有表头
layer.msg("上传文件为空!", {icon: 7});
$('#LAY-excel-upload').val("");
}else{
for (var i=1;i<data[0].sheet1.length;i++) {//从1开始 0为首行
var tag=(data[0].sheet1[i].nickname == "") ? true : false;
if(tag == true) {
var a=i+1;
if(emptyRow == "") {
emptyRow = a+"";
}else{
emptyRow = emptyRow + "," +a;
}
continue;
}
tag=(data[0].sheet1[i].idNumber == "") ? true : false;
if(tag == true) {
var a=i+1;
if(emptyRow == "") {
emptyRow = a+"";
}else{
emptyRow = emptyRow + "," +a;
}
continue;
}
tag=(data[0].sheet1[i].email == "") ? true : false;
if(tag == true) {
var a=i+1;
if(emptyRow == "") {
emptyRow = a+"";
}else{
emptyRow = emptyRow + "," +a;
}
continue;
}
tag=(data[0].sheet1[i].phone == "") ? true : false;
if(tag == true) {
var a=i+1;
if(emptyRow == "") {
emptyRow = a+"";
}else{
emptyRow = emptyRow + "," +a;
}
continue;
}
}
if(emptyRow != "") {
layer.msg("表格中第"+emptyRow+"行有空数据,请填写完整后再上传!", {icon: 7});
$('#LAY-excel-upload').val("");
}
}
})
} catch (e) {
layer.alert(e.message)
}
}