纯前台js json导出到excel,不与后台交互

  1. <html>  
    <head>  
        <meta http-equiv="content-type" content="text/html; charset=utf-8">  
        <script type="text/javascript" src="jquery.min.js"></script>  
        <script type="text/javascript">  
            $(document).ready(function(){  
                $('#wwo').click(function(){  
                    var data = {"title":[{"value":"集团", "type":"ROW_HEADER_HEADER", "datatype":"string"}, {"value":"日期", "type":"ROW_HEADER_HEADER", "datatype":"string"}],"data":[[{"value":"好好", "type":"ROW_HEADER"}, {"value":"2015-08-24", "type":"ROW_HEADER"}]]};  
                    if(data == '')  
                        return;  
                    JSONToExcelConvertor(data.data, "Report", data.title);  
                });  
            });  
      
            function JSONToExcelConvertor(JSONData, FileName, 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>" + 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].value === "." ? "" : arrData[i][index].value;  
                        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>  
    </head>  
    <body>  
        <input type="button" id="wwo" value="导出" />  
    </body>  
    </html>  
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值