溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

layui中怎樣導(dǎo)入excel文件

發(fā)布時(shí)間:2020-12-08 09:42:01 來源:億速云 閱讀:858 作者:小新 欄目:web開發(fā)

這篇文章主要介紹了layui中怎樣導(dǎo)入excel文件,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

我們先來看看完成的效果圖:

layui中怎樣導(dǎo)入excel文件

具體步驟如下:

首先:導(dǎo)入layui第三方插件js,地址:

https://fly.layui.com/extend/excel/

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

layui中怎樣導(dǎo)入excel文件

//引入excel
    layui.config({
        base: 'layui_ext/',
    }).extend({
        excel: 'excel',
    });

2、監(jiān)聽頭工具欄的點(diǎn)擊事件

// 監(jiān)聽頭工具欄事件
table.on('toolbar(terminalConfig)', function(obj) {
	var layer = layui.layer;
	// 添加終端
	if(obj.event == 'import'){
		layer.open({
			type : 1,
			shade : false,
			area : [ '350px', '260px' ],
			title : '導(dǎo)入Excel',
			content : $("#ImportExcel"),
			cancel : function() {
					layer.close();
			},
			success : function(layero, index) {
					ImportExcel();
			},
		});
						
	}
//導(dǎo)入Excel結(jié)束
});
//監(jiān)聽頭工具欄事件結(jié)束

3、ImportExcel()方法:

//導(dǎo)入方法
function ImportExcel(){
	var $ = layui.jquery
	  ,upload = layui.upload;
	  var uploadInst = upload.render({
		  elem: '#importExcel',
		  /*method: 'POST',*/
		  url: basePath + 'PowerUser/importPowerUserData.action',
		  accept: 'file', //普通文件
		  exts: 'xls|excel|xlsx', //導(dǎo)入表格
		  auto: false,  //選擇文件后不自動(dòng)上傳
		  before: function (obj) {
			  layer.load(); //上傳loading
		  },
		  choose: function (obj) {// 選擇文件回調(diào)
			  var files = obj.pushFile();
			  var fileArr = Object.values(files);// 注意這里的數(shù)據(jù)需要是數(shù)組,所以需要轉(zhuǎn)換一下
			  //console.debug(fileArr)
			  // 用完就清理掉,避免多次選中相同文件時(shí)出現(xiàn)問題
			  for (var index in files) {
				  if (files.hasOwnProperty(index)) {
					  delete files[index];
				  }
			  }
			  uploadExcel(fileArr); // 如果只需要最新選擇的文件,可以這樣寫: uploadExcel([files.pop()])
		  },
		  error : function(){
			  setTimeout(function () {
				  layer.msg("上傳失??!", {
						icon : 1
				});
				//關(guān)閉所有彈出層
				layer.closeAll(); //瘋狂模式,關(guān)閉所有層
			  },1000);
		  }
	  });
}

4、uploadExcel()方法:

function uploadExcel(files) {
    try {
    	var excel = layui.excel;
        excel.importExcel(files, {
            // 讀取數(shù)據(jù)的同時(shí)梳理數(shù)據(jù)
            fields: {
            	'tId' : 'A',
				'inport' : 'B',
				'state' : 'C',
				'householdNumber' : 'D',
				'accountName' : 'E',
				'phone' : 'F'
            }
        }, function (data) {
            var arr = new Array();
            for(i = 1; i < data[0].Sheet1.length; i++){
            	var tt = {
                    	cId : selectConcentrator,
                    	tId : data[0].Sheet1[i].tId,
                    	inport: data[0].Sheet1[i].inport,
                    	state: data[0].Sheet1[i].state,
                    	householdNumber: data[0].Sheet1[i].householdNumber,
                    	accountName: data[0].Sheet1[i].accountName,
                    	phone: data[0].Sheet1[i].phone,
                    };
            	arr.push(tt);
            }
            
            $.ajax({
                async: false,
                url: basePath + 'PowerUser/importPowerUserData.action',
                type: 'post',
                dataType: "json",
                contentType: "application/x-www-form-urlencoded",
                data: {
                	data : JSON.stringify(arr)
                },
                success: function (data) {
                	if(data.success){
                		layer.msg(data.message);
                		setTimeout(function () {
                			layer.closeAll(); //瘋狂模式,關(guān)閉所有層
                		},1000);
                		//表格導(dǎo)入成功后,重載表格
                		tableIns.reload('testTerminalConfigReload',{
                             url : basePath + 'PowerUser/PowerUserDataTable.action',
                             page : {
     							limit : 10, // 初始 每頁幾條數(shù)據(jù)
     							limits : [ 10, 20, 30 ]
     						// 可以選擇的 每頁幾條數(shù)據(jù)
     						},
     						where : {
     							cId : selectConcentrator,
     							tId : selectTerminal
     						},
     						parseData: function(res){ //res 即為原始返回的數(shù)據(jù)
     						    return {
     						      "code": 0, //解析接口狀態(tài)
     						      "msg": res.message, //解析提示文本
     						      "count": res.total, //解析數(shù)據(jù)長(zhǎng)度
     						      "data": res.data //解析數(shù)據(jù)列表
     						    };
     						}
                         }, 'data');
                	}else{
                		//表格導(dǎo)入失敗后,重載文件上傳
                		layer.alert(data.error+"請(qǐng)重新上傳",{icon : 2});
                	}
                },
                error: function (msg) {
                    layer.msg('請(qǐng)聯(lián)系管理員!!!');
                }
            });
        });
    } catch (e) {
        layer.alert(e.message);
    }
}

方法4是讀取數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行梳理。把Excel數(shù)據(jù)解析出來,然后把數(shù)據(jù)傳到后端。后端對(duì)數(shù)據(jù)進(jìn)行解析,然后插入數(shù)據(jù)庫(kù)。成功之后,給前端返回"Excel導(dǎo)入成功"。Excel導(dǎo)入成功之后,重載表格,數(shù)據(jù)就可以在表格里顯示了。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享layui中怎樣導(dǎo)入excel文件內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細(xì)的解決方法等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI