å®æ´ä»£ç ï¼
//导åºexcelfunction tableToExcel(){
var arrSor = ["sorttable10","sorttable30","sorttable60","sorttable120"]
let str = "";
for (var k = 0; k < arrSor.length; k++) {
var tab=document.getElementById(arrSor[k]);
var rows=tab.rows;
const jsonData = [];
for(var i=2;i<rows.length;i++){ //éåè¡¨æ ¼çè¡
var json = {};
for(var j=0;j<rows[i].cells.length;j++){ //éåæ¯è¡çå
json[(i+1)+"-"+(j+1)] = rows[i].cells[j].innerHTML;
}
jsonData.push(json);
}
//åæ é¢
let str1 = "<tr><td align='center' colspan='5'><b>æ大"+arrSor[k].substring(9,arrSor[k].length)+"åéé¨é</b></td></tr>";
let str2 = "<tr align='center'><th>ç«ç¹</th><th>ç«å</th><th>é¨éæ大å¼</th><th>éæ°´æ¶æ®µ</th><th>è½å
¥æ大éæ°´æ¶æ®µ</th></tr>";
//循ç¯éåï¼æ¯è¡å å
¥træ ç¾ï¼æ¯ä¸ªåå
æ ¼å tdæ ç¾
for(let i = 0 ; i < jsonData.length ; i++ ){
str2+='<tr>';
for(let item in jsonData[i]){
//å¢å \t为äºä¸è®©è¡¨æ ¼æ¾ç¤ºç§å¦è®¡æ°æ³æè
å
¶ä»æ ¼å¼
var itemTem= jsonData[i][item];
if (itemTem == "ææ æ°æ®") {
str2+=`<td colspan='5' align='center'>${ itemTem + '\t'}</td>`;
}else {
str2+=`<td align='center'>${ itemTem + '\t'}</td>`;
}
}
str2+='</tr>';
}
let str3 = "<tr><td colspan='5'></td></tr>";
str += (str1 + str2 + str3);
}
let worksheet = 'é¨éæ大å¼'
let uri = 'data:application/vnd.ms-excel;base64,';
//ä¸è½½çè¡¨æ ¼æ¨¡æ¿æ°æ®
let template = `<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"><head><meta charset='UTF-8'><!--[if gte mso 9]><xml>
<x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>
<x:Name>${worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->
<style type="text/css">
table {border: 1px solid #000000;}
table tr td b {background:#FFFFFF;color:#3D3D3D;font-size:24px;border: 1px solid #000000;}
table th {background:#AEE1FE;color:#3D3D3D;font-size:20px;border: 1px solid #000000;}
table td {background:#FFFFFF;color:#3D3D3D;font-size:20px;border: 1px solid #000000;}</style>
</head><body><table>${str}</table></body></html>`;
//ä¸è½½æ¨¡æ¿
// window.location.href = uri + this.base64(template)
var link = document.createElement("a");
link.href = uri + this.base64(template);
link.download = "é¨éæ大å¼-" +new Date().format("yyyyå¹´MMæddæ¥ hæ¶")+ ".xls";
link.style = "visibility:hidden";
document.body.appendChild(link);
link.click();
document.body.removeChild(link);}//è¾åºbase64ç¼ç function base64 (template) {
return window.btoa(unescape(encodeURIComponent(template))) }
解æï¼
éåååºè¡¨ï¼é¡ºåºæ¯è¡ä»ä¸å¾ä¸ï¼åä»å·¦å¾å³ï¼å°æ°æ®åè¿æ°ç»ï¼ä¸é¢åæ¼æ¥æ表ã
image.png
åèæç« ï¼
https://blog.csdn.net/hhzzcc_/article/details/80419396第ä¸ç§æ¹æ³ï¼å¤§éæ°æ®å¯¼åºï¼
//导åºexcelfunction tableToExcel() {
var arrSor = ["sorttable10","sorttable30","sorttable60","sorttable120"]
let str = "";
for (var k = 0; k < arrSor.length; k++) {
var tab=document.getElementById(arrSor[k]);
var rows=tab.rows;
const jsonData = [];
for(var i=2;i<rows.length;i++){ //éåè¡¨æ ¼çè¡
var json = {};
for(var j=0;j<rows[i].cells.length;j++){ //éåæ¯è¡çå
if (rows[i].cells[j].outerHTML.indexOf("rgb(255, 255, 0)") != -1) {
json["yellow"+(i+1)+"-"+(j+1)] = rows[i].cells[j].innerHTML;
}else {
json[(i+1)+"-"+(j+1)] = rows[i].cells[j].innerHTML;
}
}
jsonData.push(json);
}
//åæ é¢
let str1 = "<tr><td colspan='5' align='center' style='background-color:#FFFFFF;font-size:24px;border: 1px solid #000000;'><b>æ大"
+arrSor[k].substring(9,arrSor[k].length)+"åéé¨é</b></td></tr>";
let str2 = "<tr>" +
"<th style='background-color:#AEE1FE;font-size:22px;border: 1px solid #000000;' align='center'>ç«ç¹</th>" +
"<th style='background-color:#AEE1FE;font-size:22px;border: 1px solid #000000;' align='center'>ç«å</th>" +
"<th style='background-color:#AEE1FE;font-size:22px;border: 1px solid #000000;' align='center'>é¨éæ大å¼</th>" +
"<th style='background-color:#AEE1FE;font-size:22px;border: 1px solid #000000;' align='center'>éæ°´æ¶æ®µ</th>" +
"<th style='background-color:#AEE1FE;font-size:22px;border: 1px solid #000000;' align='center'>è½å
¥æ大éæ°´æ¶æ®µ</th></tr>";
//循ç¯éåï¼æ¯è¡å å
¥træ ç¾ï¼æ¯ä¸ªåå
æ ¼å tdæ ç¾
for(let i = 0 ; i < jsonData.length ; i++ ){
str2+="<tr align='center'>";
for(let item in jsonData[i]){
if (item.indexOf("yellow") != -1) {//ååæ°çäº3
//å¢å \t为äºä¸è®©è¡¨æ ¼æ¾ç¤ºç§å¦è®¡æ°æ³æè
å
¶ä»æ ¼å¼
var itemTem= jsonData[i][item];
if (itemTem == "ææ æ°æ®") {
str2+=`<td colspan='5' style='background-color:#FFFF00;font-size:22px;border: 1px solid #000000;'> ${ itemTem + '\t'}</td>`;
}else {
str2+=`<td style='background-color:#FFFF00;font-size:22px;border: 1px solid #000000;'> ${ itemTem + '\t'}</td>`;
}
}else {
//å¢å \t为äºä¸è®©è¡¨æ ¼æ¾ç¤ºç§å¦è®¡æ°æ³æè
å
¶ä»æ ¼å¼
var itemTem= jsonData[i][item];
if (itemTem == "ææ æ°æ®") {
str2+=`<td colspan='5' style='background-color:#FFFFFF;font-size:22px;border: 1px solid #000000;'> ${ itemTem + '\t'}</td>`;
}else {
str2+=`<td style='background-color:#FFFFFF;font-size:22px;border: 1px solid #000000;'> ${ itemTem + '\t'}</td>`;
}
}
}
str2+='</tr>';
}
let str3 = "<tr><td colspan='5' style='background-color:#FFFFFF;border: 1px solid #000000;'></td></tr>";
str += (str1 + str2 + str3);
}
var tableHtml="<html><head><meta charset='UTF-8'></head><body><table>"+str+"</body></html>"
var excelBlob = new Blob([tableHtml], {type: 'application/vnd.ms-excel'});
var fileName = "é¨éæ大å¼-"+new Date().format("yyyyå¹´MMæddæ¥ hæ¶")+".xls";
if(isIE()){
window.navigator.msSaveOrOpenBlob(excelBlob,fileName);
}else{
var oa = document.createElement('a');
oa.href = URL.createObjectURL(excelBlob);
oa.download = fileName;
document.body.appendChild(oa);
oa.click();
}} //å¤ææ¯å¦IEæµè§å¨function isIE() {
if (!!window.ActiveXObject || "ActiveXObject" in window) {
return true;
} else {
return false;
}}
åèæç« ï¼
https://blog.csdn.net/qq_34169240/article/details/84231226