JS导出JSON到Excel表格

<a href="javascript:;" id="export">导出</a>
<script>

    $("#export").click(function () {
        var Title = [{ "value": "姓名" }, { "value": "课题组" }, { "value": "手机" }, { "value": "手机短号" }, { "value": "申请人邮箱" }, { "value": "申请培训时间" }, { "value": "动物实验资格证号" }, { "value": "状态" }];
        var Value = [{ "Fullnames": "扯淡", "Fullname": "扯淡", "Mobile": "18888888888", "Mobilecornet": "021-88888888", "Email": "8888@qq.com", "TimeAllocation": "9月份第四周", "QualificationCode": "9876543210", "Status": "已审核" }, { "Fullnames": "扯淡", "Fullname": "扯淡1", "Mobile": "18999999999", "Mobilecornet": "021-99999999", "Email": "9999@qq.com", "TimeAllocation": "3月份第四周", "QualificationCode": "0123456789", "Status": "未审核" }];
        var data = { "title": Title, "data": Value };
        JSONToExcelConvertor("培训申请管理", data.data, data.title);
    })

    function JSONToExcelConvertor(FileName, JSONData, ShowLabel) {

        //先转化json  
        var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;

        var excel = '<table>';

        //设置表头  
        var row = "<tr>";
        for (var i = 0, l = ShowLabel.length; i < l; i++) {
            row += "<td style=\"color:red\">" + ShowLabel[i].value + '</td>';
        }

        //换行  
        excel += row + "</tr>";

        //设置数据  
        for (var i = 0; i < arrData.length; i++) {
            var row = "<tr>";

            for (var index in arrData[i]) {
                var value = arrData[i][index] === "." ? "" : arrData[i][index];
                row += '<td>' + value + '</td>';
            }

            excel += row + "</tr>";
        }

        excel += "</table>";

        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 += "{worksheet}";
        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 += excel;
        excelFile += "</body>";
        excelFile += "</html>";

        var uri = 'data:application/vnd.ms-excel;charset=utf-8,' + encodeURIComponent(excelFile);

        var link = document.createElement("a");
        link.href = uri;

        link.style = "visibility:hidden";
        link.download = FileName + ".xls";

        document.body.appendChild(link);
        link.click();
        document.body.removeChild(link);
    }

</script>

 原文:https://blog.csdn.net/educast/article/details/52775559

posted @ 2019-09-05 16:19  时光博客  阅读(1336)  评论(0编辑  收藏  举报