欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

json生成excel表格并下载

程序员文章站 2024-03-21 17:20:04
...
	var JSON_DATA = {
	        "title": [{
                "value": "司机",
                "value": "司机",
                "value": "司机",
                "value": "司机",
                "value": "司机",
            },],
	        "data": [
						{"xuhao":(i+1),"project_name":dealnull(data[i].project_name),"company_name":dealnull(data[i].company_name),"project_type":dealnull(data[i].project_type),"state":dealnull(data[i].state)},
						{"xuhao":(i+1),"project_name":dealnull(data[i].project_name),"company_name":dealnull(data[i].company_name),"project_type":dealnull(data[i].project_type),"state":dealnull(data[i].state)},
						{"xuhao":(i+1),"project_name":dealnull(data[i].project_name),"company_name":dealnull(data[i].company_name),"project_type":dealnull(data[i].project_type),"state":dealnull(data[i].state)}
	                 ]
	    };
	
	//生成excel表格
    function JSONToExcelConvertor(JSONData, FileName, ShowLabel) {
    	

        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 j in arrData[i]){
            	row+='<td>'+arrData[i][j]+'</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);
    }
	
https://www.cnblogs.com/luojianjian/p/7504416.html