您好,登錄后才能下訂單哦!
這篇文章主要介紹了layui中怎樣導(dǎo)入excel文件,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
我們先來看看完成的效果圖:
具體步驟如下:
首先:導(dǎo)入layui第三方插件js,地址:
https://fly.layui.com/extend/excel/
1、在頁面中引入excel.js文件:
//引入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í)!
免責(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)容。