天天看點

js json轉excel并下載下傳

JSONToExcelConvertor.js

function JSONToExcelConvertor(JSONData, FileName,title,filter) {

if(!JSONData)

return;

//轉化json為object

var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;

var excel = "<table>";

//設定表頭

var row = "<tr>";

if(title)

{

//使用标題項

for (var i in title) {

row += "<th align='center'>" + title[i] + '</th>';

}

}

else{

//不使用标題項

for (var i in arrData[0]) {

row += "<th align='center'>" + i + '</th>';

}

}

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

//設定資料

for (var i = 0; i < arrData.length; i++) {

var row = "<tr>";

for (var index in arrData[i]) {

//判斷是否有過濾行

if(filter)

{

if(filter.indexOf(index)==-1)

{

var value = arrData[i][index] == null ? "" : arrData[i][index];

row += '<td>' + value + '</td>';

}

}

else

{

var value = arrData[i][index] == null ? "" : arrData[i][index];

row += "<td align='center'>" + 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);

}

調用:

$("#siteDown").click(function () {

//自定義标題欄

var title=['站點編碼','站點名稱']

//自定義過濾欄(不需要導出的行)

// var filter=['id','logins'];

var filter=[];

//原始導出

// JSONToExcelConvertor(data3,"report");

//自定義導出

JSONToExcelConvertor(siteJson,"申請站點",title,filter);

})