导出excel

1.后台实现

  导出成功后后台返给url,那个url就是导出的那个excel

   前端做出点击导出,弹出下载目录,然后下载

    直接window.location.href=url;(在当前页打开excel的地址)

2,js实现

function exportFun(){
      var row=[0,8];//你不要的行的坐标
      var line=[0,8];//你不需要的列的坐标
      exportExcel('tab','导出',row,line);
    }
如果你不传入row,line,导出全部的数据 function exportExcel(tableID,fileName,row,line) {
var agent = navigator.userAgent.toLowerCase(); var isIE = /(msies|trident.*rv:)([w.]+)/.test(agent); if (isIE) { alert("暂不支持IE内核的浏览器"); } else { var table = document.getElementById(tableID); var oTh = table.getElementsByTagName('th'); var data = []; data[0] = []; for(var i = 0; i < oTh.length; i++) { // 标题th强制导出 if(line && inArray(i, line)) { continue; } data[0].push(oTh[i].innerHTML) } var oTr = table.getElementsByTagName('tr'); for(var i = 1; i < oTr.length; i++) { if(row && inArray(i,row)) { continue; } var arr = []; var oTd = oTr[i].getElementsByTagName('td'); for (var j = 0; j < oTd.length; j++) { if(line && inArray(j, line)) { continue; } arr.push(oTd[j].innerHTML.replace(' ',' ')); } data.push(arr); } var str = ''; data.forEach(function(arr, index){ str += arr.toString() + ' '; }) str = encodeURIComponent(str); //解决换行符无法识别问题 var url = 'data:text/txt;charset=utf-8,ufeff'+ str; var downloadLink = document.createElement("a"); downloadLink.href = url; downloadLink.download = fileName+".xlsx"; document.body.appendChild(downloadLink); downloadLink.click(); downloadLink.remove(); } } function inArray(target, arr) { // 不适用于引用数据类型 return arr.some(function(elem, index) { if (target === elem) { return true; } }) }

  

原文地址:https://www.cnblogs.com/SunShineM/p/7424363.html