將table導(dǎo)出為EXCel

/* 外部引用此方法導(dǎo)出 fileName:導(dǎo)出的Excel的名字(不需要后綴名) */

function tableToExc(fileName){

? //獲取全部table

? ? var tables = document.getElementsByTagName("table");

? //在document下創(chuàng)建臨時(shí)table存儲(chǔ)數(shù)據(jù)

? var tableExc = document.createElement("table");

? tableExc.setAttribute("border","1px");

? //頁面table數(shù)量的判斷

? if(tables.length==0){

? ? ? return;

? }else{

? ? ? //獲取所有table

? ? ? ? var table1 =? tables[0];

? ? ? ? var table2 =? tables[1];

? ? ? ? var table3 =0;

? ? ? ? var table4 =0;

? ? ? ? var table5 =0;

? ? ? ? var table6 =0;

? ? ? ? //table3和table4判斷

? ? ? ? if(tables.length==4){

? ? ? ? ? ? table3 =? tables[2];

? ? ? ? ? ? table4 =? tables[3];

? ? ? ? }

? ? ? ? //table5和table6判斷

? ? ? ? if (tables.length==6){

? ? ? ? ? table3 =? tables[2];

? ? ? ? ? ? ? table4 =? tables[3];

? ? ? ? ? ? ? table5 =? tables[4];

? ? ? ? ? ? ? table6 =? tables[5];

? ? ? ? ? }

? ? ? ? //fn2:將所有table的值復(fù)制到臨時(shí)table中

? ? ? ? ? tableCopy(table1,table2,table3,table4,table5,table6,tableExc);

? ? ? ? ? //將table導(dǎo)出

? ? ? ? ? tableToExcMethod(tableExc,fileName);

? ? }

}

function tableCopy(t1,t2,t3,t4,t5,t6,tableExc){

? ? //獲取所有table的tbody

? ? var tbody1 = t1.tBodies[0];

? ? var tbody2 = t2.tBodies[0];

? ? var tbody3 = t3.tBodies[0];

? ? var tbody4 = t4.tBodies[0];

? ? //獲取table的行數(shù)

? ? var tbody1RowNum = tbody1.rows.length;

? ? var tbody2RowNum = tbody2.rows.length;

? ? var tbody3RowNum = tbody3.rows.length;

? ? var tbody5RowNum = 0;

? ? if(t5){

? ? ? ? var tbody5 = t5.tBodies[0];

? ? ? ? var tbody6 = t6.tBodies[0];

? ? ? ? var table5CellsNum = tbody5.rows[0].cells.length;

? ? ? ? var table6CellsNum = tbody6.rows[0].cells.length;

? ? ? ? tbody5RowNum = tbody5.rows.length;

? ? }

? ? //table1和table2復(fù)制

? ? for(var i=0;i<tbody1RowNum;i++){

? ? ? ? var table1CellsNum = tbody1.rows[i].cells.length;

? ? ? ? var num1 = tbody2.rows.length-1;

? ? ? ? var table2CellsNum = tbody2.rows[num1].cells.length;

? ? ? ? var tr = tableExc.insertRow();

? ? ? ? //table1復(fù)制

? ? ? ? for(var k=0;k<table1CellsNum;k++){

? ? ? ? ? var s = tr.insertCell(k);

? ? ? ? ? s.colSpan = tbody1.rows[i].cells[k].colSpan;

? ? ? ? ? s.rowSpan = tbody1.rows[i].cells[k].rowSpan;

? ? ? ? ? s.innerHTML = tbody1.rows[i].cells[k].innerHTML;

? ? ? ? }

? ? }

? ? for(var i=0;i<tbody2RowNum;i++){

? ? ? ? //table2復(fù)制

? ? ? ? var tr = tableExc.insertRow();

? ? ? ? var table2CellsNum = tbody2.rows[i].cells.length;


? ? ? ? for(var k=table1CellsNum;k<table2CellsNum+table1CellsNum;k++){

? ? ? ? var s = tr.insertCell(k-1);

? ? ? ? ? ? s.colSpan = tbody2.rows[i].cells[k-table1CellsNum].colSpan;

? ? ? ? ? ? s.rowSpan = tbody2.rows[i].cells[k-table1CellsNum].rowSpan;

? ? ? ? ? ? if(tbody2.rows[i].cells[k-table1CellsNum].children.length){

? ? ? ? ? ? s.innerHTML = tbody2.rows[i].cells[k-table1CellsNum].children[0].innerHTML;

? ? ? ? ? ? }else{

? ? ? ? ? ? s.innerHTML = tbody2.rows[i].cells[k-table1CellsNum].innerHTML;

? ? ? ? ? ? }

? ? ? ? ? }


? ? ? ? }


? //table3和table4復(fù)制

? ? for(var i=0;i<tbody3RowNum;i++){

? ? ? ? var table3CellsNum = tbody3.rows[i].cells.length;

? ? ? ? var table4CellsNum = tbody4.rows[i].cells.length;

? ? ? ? var tr = tableExc.insertRow();

? ? ? ? //table3復(fù)制

? ? ? ? for(var k=0;k<table3CellsNum;k++){

? ? ? ? ? var s = tr.insertCell(k);

? ? ? ? ? s.colSpan = tbody3.rows[i].cells[k].colSpan;

? ? ? ? ? s.rowSpan = tbody3.rows[i].cells[k].rowSpan;

? ? ? ? ? s.innerHTML = tbody3.rows[i].cells[k].innerHTML;

? ? ? ? }

? ? ? ? //table4復(fù)制

? ? ? ? for(var k=table3CellsNum;k<table4CellsNum+table3CellsNum;k++){

? ? ? ? ? ? var s = tr.insertCell(k);

? ? ? ? ? ? s.colSpan = tbody4.rows[i].cells[k-table3CellsNum].colSpan;

? ? ? ? ? ? s.rowSpan = tbody4.rows[i].cells[k-table3CellsNum].rowSpan;

? ? ? ? ? ? s.innerHTML = tbody4.rows[i].cells[k-table3CellsNum].innerHTML;

? ? ? ? ? }

? ? ? }

? ? ? if(t5){

? ? ? ? ? //table5和table6復(fù)制

? ? ? ? ? ? for(var i=0;i<tbody5RowNum;i++){

? ? ? ? ? ? ? ? var table5CellsNum = tbody5.rows[i].cells.length;

? ? ? ? ? ? ? ? var table6CellsNum = tbody6.rows[i].cells.length;

? ? ? ? ? ? ? ? var tr = tableExc.insertRow();

? ? ? ? ? ? ? ? //table5復(fù)制

? ? ? ? ? ? ? ? for(var k=0;k<table5CellsNum;k++){

? ? ? ? ? ? ? ? ? var s = tr.insertCell(k);

? ? ? ? ? ? ? ? ? s.colSpan = tbody5.rows[i].cells[k].colSpan;

? ? ? ? ? ? ? ? ? s.rowSpan = tbody5.rows[i].cells[k].rowSpan;

? ? ? ? ? ? ? ? ? s.innerHTML = tbody5.rows[i].cells[k].innerHTML;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? //table6復(fù)制

? ? ? ? ? ? ? ? for(var k=table5CellsNum;k<table6CellsNum+table5CellsNum;k++){

? ? ? ? ? ? ? ? ? ? var s = tr.insertCell(k);

? ? ? ? ? ? ? ? ? ? s.colSpan = tbody6.rows[i].cells[k-table5CellsNum].colSpan;

? ? ? ? ? ? ? ? ? ? s.rowSpan = tbody6.rows[i].cells[k-table5CellsNum].rowSpan;

? ? ? ? ? ? ? ? ? ? s.innerHTML = tbody6.rows[i].cells[k-table5CellsNum].innerHTML;

? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? }

? ? ? }

}

//table? table對(duì)象

//fileName Excel的文件名稱

function tableToExcMethod(table, fileName){

? ? ? ? if(!fileName){

? ? ? ? ? ? fileName="導(dǎo)出文件.xls"

? ? ? ? }else{

? ? ? ? fileName = fileName+".xls";

? ? ? ? }

? ? ? var table_text="<table border='2px'><tr>";?

? ? ? var textRange;

? ? ? var index=0;

? ? ? for(index = 0 ; index < table.rows.length ; index++) {? ?

? ? ? ? ? ? ? table_text=table_text+table.rows[index].innerHTML+"</tr>";

? ? ? ? }

? ? ? ? table_text=table_text+"</table>";?

? ? ? ? table_text= table_text.replace(/<a[^>]*>|<\/a>/g, "");

? ? ? ? table_text= table_text.replace(/<img[^>]*>/gi,"");

? ? ? ? table_text= table_text.replace(/<input[^>]*>|<\/input>/gi, "");?

? ? ? ? var userAgent = window.navigator.userAgent;?

? ? ? ? var msie = userAgent.indexOf("MSIE ");?

? ? ? ? if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))? ? ?

? ? ? ? {

? ? ? ? ? if (typeof Blob !== "undefined") {

? ? ? ? ? ? ? table_text = [table_text];

? ? ? ? ? ? ? var blob = new Blob(table_text);

? ? ? ? ? ? ? window.navigator.msSaveBlob(blob, ''+fileName);

? ? ? ? ? }

? ? ? ? ? else{

? ? ? ? ? ? ? textArea.document.open("text/html", "replace");

? ? ? ? ? ? ? textArea.document.write(table_text);

? ? ? ? ? ? ? textArea.document.close();

? ? ? ? ? ? ? textArea.focus();

? ? ? ? ? ? ? textArea.document.execCommand("SaveAs", true, fileName);

? ? ? ? ? ? ? }

? ? ? ? ? ? }


? ? ? ? ? else?

? ? ? ? ? ? ? var a = document.createElement('a');

? ? ? ? ? ? ? var data_type = 'data:application/vnd.ms-excel';

? ? ? ? ? ? ? var table_div = table;

? ? ? ? ? ? ? var table_html = table_div.outerHTML.replace(/ /g, '%20');

? ? ? ? ? ? ? table_html = table_html.replace(/<a[^>]*>|<\/a>/g, "");

? ? ? ? ? ? ? a.href = data_type + ', ' + table_html;

? ? ? ? ? ? ? a.download = ''+fileName;

? ? ? ? ? ? ? a.click();

? ? }

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容