LayUI如何导入excel文件

 9382

layui导入excel文件的方法:首先在页面中引入【excel.js】文件;然后监听头工具栏的点击事件,代码为【title : '导入Excel',content : $("#ImportExcel")】。


LayUI如何导入excel文件


layui导入excel文件的方法:

1、在页面中引入excel.js文件:

LayUI如何导入excel文件

  1. //引入excel
  2. layui.config({
  3.     base: 'layui_ext/',
  4. }).extend({
  5.     excel: 'excel',
  6. });

2、监听头工具栏的点击事件

  1. // 监听头工具栏事件
  2. table.on('toolbar(terminalConfig)', function(obj) {
  3.     var layer = layui.layer;
  4.     // 添加终端
  5.     if(obj.event == 'import'){
  6.         layer.open({
  7.             type : 1,
  8.             shade : false,
  9.             area : [ '350px', '260px' ],
  10.             title : '导入Excel',
  11.             content : $("#ImportExcel"),
  12.             cancel : function() {
  13.                 layer.close();
  14.             },
  15.             success : function(layero, index) {
  16.                 ImportExcel();
  17.             },
  18.         });
  19.     }
  20.     //导入Excel结束
  21. });
  22. //监听头工具栏事件结束

3、ImportExcel()方法:

  1. //导入方法
  2. function ImportExcel(){
  3.     var $ = layui.jquery
  4.     ,upload = layui.upload;
  5.     var uploadInst = upload.render({
  6.         elem: '#importExcel',
  7.         /*method: 'POST',*/
  8.         url: basePath + 'PowerUser/importPowerUserData.action',
  9.         accept: 'file', //普通文件
  10.         exts: 'xls|excel|xlsx', //导入表格
  11.         auto: false,  //选择文件后不自动上传
  12.         before: function (obj) {
  13.             layer.load(); //上传loading
  14.         },
  15.         choose: function (obj) {// 选择文件回调
  16.             var files = obj.pushFile();
  17.             var fileArr = Object.values(files);// 注意这里的数据需要是数组,所以需要转换一下
  18.             //console.debug(fileArr)
  19.             // 用完就清理掉,避免多次选中相同文件时出现问题
  20.             for (var index in files) {
  21.                 if (files.hasOwnProperty(index)) {
  22.                     delete files[index];
  23.                 }
  24.             }
  25.             uploadExcel(fileArr); // 如果只需要最新选择的文件,可以这样写: uploadExcel([files.pop()])
  26.         },
  27.         error : function(){
  28.             setTimeout(function () {
  29.                 layer.msg("上传失败!", {
  30.                     icon : 1
  31.                 });
  32.                 //关闭所有弹出层
  33.                 layer.closeAll(); //疯狂模式,关闭所有层
  34.             },1000);
  35.         }
  36.     });
  37. }

4、uploadExcel()方法:

  1. function uploadExcel(files) {
  2.     try {
  3.         var excel = layui.excel;
  4.         excel.importExcel(files, {
  5.             // 读取数据的同时梳理数据
  6.             fields: {
  7.                 'tId' : 'A',
  8.                 'inport' : 'B',
  9.                 'state' : 'C',
  10.                 'householdNumber' : 'D',
  11.                 'accountName' : 'E',
  12.                 'phone' : 'F'
  13.             }
  14.         }, function (data) {
  15.             var arr = new Array();
  16.             for(= 1; i < data[0].Sheet1.length; i++){
  17.                 var tt = {
  18.                     cId : selectConcentrator,
  19.                     tId : data[0].Sheet1[i].tId,
  20.                     inport: data[0].Sheet1[i].inport,
  21.                     state: data[0].Sheet1[i].state,
  22.                     householdNumber: data[0].Sheet1[i].householdNumber,
  23.                     accountName: data[0].Sheet1[i].accountName,
  24.                     phone: data[0].Sheet1[i].phone,
  25.                 };
  26.                 arr.push(tt);
  27.             }
  28.              
  29.             $.ajax({
  30.                 async: false,
  31.                 url: basePath + 'PowerUser/importPowerUserData.action',
  32.                 type: 'post',
  33.                 dataType: "json",
  34.                 contentType: "application/x-www-form-urlencoded",
  35.                 data: {
  36.                     data : JSON.stringify(arr)
  37.                 },
  38.                 success: function (data) {
  39.                     if(data.success){
  40.                         layer.msg(data.message);
  41.                         setTimeout(function () {
  42.                             layer.closeAll(); //疯狂模式,关闭所有层
  43.                         },1000);
  44.                         //表格导入成功后,重载表格
  45.                         tableIns.reload('testTerminalConfigReload',{
  46.                             url : basePath + 'PowerUser/PowerUserDataTable.action',
  47.                             page : {
  48.                                 limit : 10, // 初始 每页几条数据
  49.                                 limits : [ 10, 20, 30 ]
  50.                                 // 可以选择的 每页几条数据
  51.                             },
  52.                             where : {
  53.                                 cId : selectConcentrator,
  54.                                 tId : selectTerminal
  55.                             },
  56.                             parseData: function(res){ //res 即为原始返回的数据
  57.                                 return {
  58.                                     "code": 0, //解析接口状态
  59.                                     "msg": res.message, //解析提示文本
  60.                                     "count": res.total, //解析数据长度
  61.                                     "data": res.data //解析数据列表
  62.                                 };
  63.                             }
  64.                         }, 'data');
  65.                     } else {
  66.                         //表格导入失败后,重载文件上传
  67.                         layer.alert(data.error+"请重新上传",{icon : 2});
  68.                     }
  69.                 },
  70.                 error: function (msg) {
  71.                     layer.msg('请联系管理员!!!');
  72.                 }
  73.             });
  74.         });
  75.     } catch (e) {
  76.         layer.alert(e.message);
  77.     }
  78. }


TAG标签:
本文网址:https://www.zztuku.com/detail-9098.html
站长图库 - LayUI如何导入excel文件
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐