2015-06-24 36 views
3

我已經使用了this question的JavaScript功能,並試圖將其適用於我的應用程序。它的工作原理,但它也可以提高,我希望,你會幫我做是否有可能改善html表導出爲xls

這是函數

function exportExcelReport(tblId) { 
    var tab_text = "<table border='2px'><tr>"; 
    var table = document.getElementById(tblId); 

    var style; 
    for (var j = 0; j < table.rows.length; j++) { 
     style = table.rows[j].className.split(" "); 
     if (style.length < 2) 
     tab_text = tab_text + table.rows[j].innerHTML + "</tr>"; 
    } 

    tab_text = tab_text + "</table>"; 
    tab_text = tab_text.replace(/<a[^>]*>|<\/a>/g, ""); 
    tab_text = tab_text.replace(/<img[^>]*>/gi, ""); 
    tab_text = tab_text.replace(/<input[^>]*>|<\/input>/gi, ""); 

    return window.open('data:application/vnd.ms-excel,' + encodeURIComponent(tab_text)); 
} 

這是表的樣子 Table html

這是什麼作爲一個結果導出後我得到 enter image description here

正如你所看到的,導出的excel文件在背景中沒有網格,實際上看起來很奇怪。你有什麼想法,爲什麼會發生這種情況?

另外我想刪除最後一列,那是在YTD之後的那一列。是否有可能在代碼中調整tab_text.replace(...),以便在導出時可以忽略它。

列看起來像這樣在HTML

</td><td width='20px'> 
    <a class='infobox' href=''> 
     <img src='img/info.jpg' alt='info' width='18' height='18'> 
     <span> 
      Service Engineer: ... <br> 
      Datasource: ... 
     </span> 
    </a> 
</tr> 

Thx提前!

回答

0

是的,我們可以通過Jquery來做到這一點。

例子:

http://www.jqueryscript.net/demo/Export-Html-Table-To-Excel-Spreadsheet-using-jQuery-table2excel/

+0

請不要張貼鏈接作爲一個答案。將來,如果鏈接被修改,這個答案可能無關緊要。從鏈接中發佈與解決OP問題相關的代碼。並且包含鏈接作爲參考。 –

+0

我已經試着用table2excel lib來實現這個功能,但是它對我來說不起作用。我已經在我之前的一個[問題]中寫過(http://stackoverflow.com/questions/30189310/table2excel-plugin-does-notwork)。 – amsalk