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

转载于:https://www.cnblogs.com/znj211985211/p/7099313.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值