【问题标题】:Is it possible to improve html table export to xls是否可以改进 html 表导出到 xls
【发布时间】:2015-06-24 11:41:17
【问题描述】:

我使用了来自 this question 的 JavaScript 函数,并尝试将其调整为我的应用程序。它有效,但也可以改进,我希望你能帮助我做到这一点

这是函数

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));
}

这就是表格的样子

这是我导出后得到的结果

如您所见,导出的 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>

提前谢谢!

【问题讨论】:

    标签: javascript html excel


    【解决方案1】:

    是的,我们可以通过 Jquery 来做到这一点。

    例子:

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

    【讨论】:

    • 请不要发布链接作为答案。将来,如果链接被修改,这个答案可能无关紧要。从链接发布与解决 OP 问题相关的代码。并包含链接作为参考。
    • 我已经尝试使用 table2excel lib 实现此功能,但它对我不起作用。我在以前的questions 中写过它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多