2016-09-16 70 views
0

所以我有一个12列的表,并在最后我有一个按钮,当我onclick并将表导出到.xls Excel中时调用一个函数 - 我需要隐藏第12个列出口。如何隐藏第12列,使其不会出现在.xls中 ??在JavaScript中隐藏列导出html表

这里是我的按钮

<li class="button"><a href="javascript:;" onclick="fnExcelReport();" style="background-color: #4cae4c;">Export EXCEL</a></li> 

代码,这里是脚本

<script> 

    function fnExcelReport() 
{ 
var tab_text="<table border='2px'>"; 
var tab_text=tab_text+"<tr bgcolor='#eeeeee' height='50'><th colspan='12' style='text-align:center; font-size:20px;'>COMPLETED TRIPS</th></tr><tr bgcolor='#bf997e' height='50' color='#FFFFFF'>"; 

var i=0; 
tab = document.getElementById('completed_trips_prov'); // id of table 


for(i = 0 ; i < tab.rows.length ; i++) 
{  
    tab_text=tab_text+tab.rows[i].innerHTML+"</tr>"; 
    //tab_text=tab_text+"</tr>"; 
} 

tab_text=tab_text+"</table>"; 
tab_text= tab_text.replace(/<a[^>]*>|<\/a>/g, "");//remove if u want links in your table 
tab_text= tab_text.replace(/<img[^>]*>/gi,""); // remove if u want images in your table 
tab_text= tab_text.replace(/<input[^>]*>|<\/input>/gi, ""); // reomves input params 

var ua = window.navigator.userAgent; 
var msie = ua.indexOf("MSIE "); 

if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))  // If Internet Explorer 
{ 
    txtArea1.document.open("txt/html","replace"); 
    txtArea1.document.write(tab_text); 
    txtArea1.document.close(); 
    txtArea1.focus(); 
    sa=txtArea1.document.execCommand("SaveAs",true,"Say T.xls"); 
} 
else     //other browser not tested on IE 11 
    sa = window.open('data:application/vnd.ms-excel,' + encodeURIComponent(tab_text)); 


return (sa); 
} 


</script> 
+1

将其从HTML中移除? –

+0

迭代每一行并删除该单元格。隐藏和不包括也是不同的东西。问题是模糊的 – charlietfl

回答

1

随着你现在有什么,你可以删除最后一个单元格我和修改你的循环行中是这样的:

//破解

for(i = 0 ; i < tab.rows.length ; i++) 
{  
    var row = tab.rows[i]; 
    var numberOfCells = row.cells.length; 
    row.deleteCell(numberOfCells - 1); 
    tab_text=tab_text+tab.rows[i].innerHTML+"</tr>"; 

} 

根据您要写入文档的内容,最好循环遍历循环中每个单元格中的每个单元格。