导出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 = /(msie\s|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('\n',' ')); } data.push(arr); } var str = ''; data.forEach(function(arr, index){ str += arr.toString() + '\n'; }) 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; } }) }