HTML表的隐藏列也将导出

时间:2019-05-03 07:22:41

标签: javascript jquery css3 html-table

我有一个带有下拉菜单的HTML表,因此用户可以看到他想要看到的任何行,我有一个导出按钮。当用户单击“导出”按钮时,我正在将数据导出到Excel。

导出时,我不导出隐藏行,而应用CSS属性display:none时,我向所有隐藏行添加了一个类,并在导出时将其删除。但是当我导出数据时,仍然会导出另外两列,我也不知道为什么。

$("#save").on("click", function() {
        var selectedType = [];
        $.each($(".dropdown-menu input[type='checkbox']:checked"), function() {
            selectedType.push($(this).val());
        });
        $.each($("#salesBreakupTable tr.filterData td:nth-child(2)"), function() {
            if (jQuery.inArray($(this).text(), selectedType) == -1 && $(this).text() != "Total") {
                $(this).parent().css("display", "none");
                $(this).parent().addClass("hide-data"); //class i am adding to hidden rows
            } else {
                $(this).parent().css("display", "");
                $(this).parent().removeClass("hide-data");
            }
        });
    });
    $("#export").click(function() { //export button on click
        var copyTable = $("#salesBreakupTable").clone(false).attr('id', '_copy_dailySales');

        copyTable.insertAfter($("#dailySales"));
        copyTable.find('.hide-data').remove(); //removing rows while exporting

        copyTable.table2excel({
            filename: "Daily Sales Report.xls"
        });
        copyTable.remove();
    });

Link to Fiddle

当我从下拉列表中选择credit时,它的输出是这样的:

this

我把桌子上的颜色涂成红色后,有两列是多余的。

注意

由于某些原因,我无法使用数据表,因为数据表未导出col-span,它将所有列一一对齐,然后在Excel中看起来非常糟糕的数据。

编辑

我刚刚找到了导出额外列的原因,我要用数据表修复的列就是那些列,这里我已经修复了前两列,因此它们在excel上导出了额外的内容

编辑

如果我对其他方法持开放态度,则可以尝试使用数据表,但不能使用col-span导出列,这就是为什么我使用table2export

1 个答案:

答案 0 :(得分:1)

添加此行将为您完成这项工作:

copyTable.find('.DTFC_LeftWrapper').remove(); //removing static columns while exporting

以下是更新过的code

的小提琴