天天看點

js導json資料到excel接口

js導json資料到excel接口
//參數說明:jsonData jsonData,  FileName 要導出的檔案名  ,ShowLabel = 表頭
function export2Excel(jsonData, FileName, ShowLabel) {  
	 if(jsonData=='' || jsonData == null){
		 alert("暫無資料無法導出!");
		 return;
	 }
	 if(FileName=='' || FileName == null){
		 alert("檔案名設定錯誤!");
		 return;
	 }
	 if(ShowLabel=='' || ShowLabel == null){
		 alert("表頭為空無法導出!");
		 return;
	 }
	
	var excel = '<table>';  
	//生成表頭   
	var row = "<tr>";   
	for (var i = 0; i < ShowLabel.length; i++) {   
	    row += "<td>" + ShowLabel[i] + '</td>';   
	}   
	excel += row + "</tr>";  
	//循環生成表身   
	for (var i = 0; i < jsonData.length; i++) {   
	    var row = "<tr>";   
	    for (var j in jsonData[i]) {   
	        var td = jsonData[i][j];   
	        row += '<td>' + td + '</td>';   
	    }   
	    excel += row + "</tr>";   
	}  
	excel += "</table>";   
	console.log(excel);  
	//組裝excel
	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 += 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);   
}             

複制