最近项目的新需求,动态报表的页面导出。由于在后端取数据循环估计很麻烦,就想着看前端会不会有简单的方法,方便的不是一点半点。
1.首先讲使用场景,需要导出的数据都在table表格里面。在导动态的数据时实在不要太方便。
注:导出的excel基本没有样式,根据前端的页面布局导出来的。
//通过id绑定到table页
exportData:function(){
//读取table数据
var excelContent =$("#tableToExcel").html();
var excelFile = "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>";
excelFile += "<head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head>";
excelFile += "<body><table width='10%' border='1'>";
excelFile += excelContent;
excelFile += "</table></body>";
excelFile += "</html>";
var link = "data:application/vnd.ms-excel;base64," + window.btoa(unescape(encodeURIComponent(excelFile)));
var a = document.createElement("a");
a.download = "内部管理报表" + ".xlsx";
a.href = link;
a.click();
},