我有一个 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();
});
当我从下拉列表中选择 credit
时,它会像这样导出:
表格后有两列是额外的,我已将其涂成红色。
注意事项
由于某些原因我不能使用数据表,因为数据表不导出 col-span,它将所有列一一左对齐,然后数据在 Excel 中看起来很糟糕。
编辑
我刚刚找到它导出额外列的原因,我用数据表修复的列就是那些列,这里我修复了前两列,所以它们在 excel 上导出额外的列
编辑
如果有任何其他方法我对此持开放态度,我已经尝试过数据表,但它不使用 col-span 导出列,这就是我使用 table2export
的原因。
最佳答案
添加这一行将为您完成这项工作:
copyTable.find('.DTFC_LeftWrapper').remove(); //removing static columns while exporting
这是更新后的 code 的 fiddle
关于javascript - HTML 表格的隐藏列也正在导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55965033/