You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS导出HTML表格到Excel时如何过滤排除最后一列

实现导出时排除表格最后一列的修改方案

核心修改逻辑

原来的代码直接拼接整行的innerHTML会包含所有列,我们只需调整行内容的拼接逻辑,遍历每行的单元格时跳过最后一列即可:

  • 每行遍历时,先获取当前行的所有单元格集合cells
  • 只拼接索引从0到cells.length - 2的单元格,跳过索引为cells.length - 1的最后一列
  • 原有过滤链接、图片、输入框的逻辑,以及兼容IE和其他浏览器的导出逻辑保持不变

调整后的完整代码

function fnExcelReport(){
    var tab_text="<table border='2px'><tr bgcolor='#87AFC6'>";
    var textRange; var j=0;
    tab = document.getElementById('myTable'); // 对应页面表格的id

    for(j = 0 ; j < tab.rows.length ; j++) {
        var row = tab.rows[j];
        var rowHtml = "";
        // 遍历单元格时跳过最后一列
        for(var i = 0; i < row.cells.length - 1; i++){
            rowHtml += row.cells[i].outerHTML;
        }
        tab_text = tab_text + rowHtml + "</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, ""); //不需要移除输入框可注释该行

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

    if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))      // IE浏览器兼容逻辑
    {
        txtArea1.document.open("txt/html","replace");
        txtArea1.document.write(tab_text);
        txtArea1.document.close();
        txtArea1.focus();
        sa=txtArea1.document.execCommand("SaveAs",true,"导出表格.xls");
    }
    else                 // 其他浏览器逻辑
        sa = window.open('data:application/vnd.ms-excel,' + encodeURIComponent(tab_text));

    return (sa);
}

注意事项

如果表格存在跨列合并的单元格,需要额外判断单元格的colSpan属性调整跳过逻辑,无合并单元格的普通表格可直接使用上述代码。

内容的提问来源于stack exchange,提问作者Ailton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:24:05