jsp生成Excel表格
字符串转化成数组
function string2Array(stringObj){
stringObj = stringObj.replace(/\[([\w, ]*)\]/,"$1");
if(stringObj.indexOf("[") == 0){
stringObj = stringObj.substring(1,stringObj.length-1);
}
var arr = stringObj.split(",");
var newArray =[];
for(var i=0;i<arr.length;i++){
var arrOne = arr[i];
newArray.push(arrOne);
}
return newArray;
}
设置表格头
function setKeys(array){
var keyMap = {id:'姓名'...}
for(var i =0;i<array.length;i++){
var obj = array[i];
for(var key in obj){
var newKey = keyMap[key];
if(newKey){
obj[newKey] = obj[key];
delete obj[key];
}
}
}
return array;
}
添加表格数据
function JSONToExcelConvertor(JSONData,FileName){
var arrData = typeof JSONData != 'object'? JSON.parse(JSONData):JSONData;
var excel ='<table>';
var row='<tr>';
var keys = Object.keys(JSONData[0]);
keys.forEach(function (item){
row += "<td>"+item+'</td>';
});
excel +=row+"</tr>";
for(var i =0;i<arrData.length;i++){
var row ="<tr>";
for(var index in arrData[i]){
row +='<td>'+arrData[i][index]+'</td>';
}
excel +=row+"</tr>";
}
excel += "</table>";
var excelFile = "<html xmins:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='htp://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:WoksheetOptions>";
excelFile +="<x:DisplayGridlines/>";
excelFile +="</x:WoksheetOptions>";
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.removenChild(link);
}