JS生成XLS文件并导出
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JS导出XLS</title> </head> <body> <button id = "button">生成并导出XLS文件</button> <script> function createXlsFile(jsonData){ var table = "<table>"; //生成表头 var row = "<tr>"; for(var i = 0; i < jsonData.th.length; i++) { row += "<th>" + jsonData.th[i] + '</th>'; } table += row + "</tr>"; var tds = jsonData.tds; for(var i = 0 , len = tds.length; i < len; i++){ var td = "<tr>"; for(var j = 0 , jLen = tds[i].length; j < jLen; j++){ td += "<td>" + tds[i][j] + "</td>"; } td += "</tr>"; table += td; } 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 += '<meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">'; excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel'; excelFile += '; charset=UTF-8">'; excelFile += "<head>"; excelFile += "<!--[if gte mso 9]>"; excelFile += "<xml>"; excelFile += "<x:ExcelWorkbook>"; excelFile += "<x:ExcelWorksheets>"; excelFile += "<x:ExcelWorksheet>"; excelFile += "<x:Name>"; excelFile += "sheet"; excelFile += "</x:Name>"; excelFile += "<x:WorksheetOptions>"; excelFile += "<x:DisplayGridlines/>"; excelFile += "</x:WorksheetOptions>"; excelFile += "</x:ExcelWorksheet>"; excelFile += "</x:ExcelWorksheets>"; excelFile += "</x:ExcelWorkbook>"; excelFile += "</xml>"; excelFile += "<![endif]-->"; excelFile += "</head>"; excelFile += "<body>"; excelFile += table; excelFile += "</body>"; excelFile += "</html>"; var uri = 'data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8,base64,' + encodeURIComponent(excelFile); var link = document.createElement("a"); link.href = uri; link.style = "visibility:hidden"; link.download = jsonData.fileName + ".xls"; document.body.appendChild(link); link.click(); document.body.removeChild(link); } document.getElementById("button").onclick = function(){ createXlsFile({ fileName :"test1111", th : ["年龄" , "姓名" , "身高"], tds : [ [10 , "张三" , 110], [20 , "李四" , 120] ] }) } </script> </body> </html>
FileSaver.js