<!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