如何在closedXml c#中禁用自动筛选

本文关键字:筛选 closedXml | 更新日期: 2023-09-27 18:27:51

我在closedXML库中遇到了一个奇怪的问题。

我正在使用closedXML库将数据表导出到.xlsx(excel文件)。默认情况下,库中已启用自动筛选。

我想禁用或删除自动筛选,只导出数据表。

这是我试过的代码,但它不起作用

XLWorkbook wb = new XLWorkbook();
var ws = wb.Worksheets.Add("Test");
ws.Cell(1, 1).InsertTable(dataTable);
ws.AutoFilter.Enabled = false;
ws.Columns().AdjustToContents();
wb.SaveAs("Report.xlsx");

我也试过

ws.AutoFilter.Clear();

即使是逐列清除过滤器也不工作

ws.AutoFilter.Column(1).Clear();

如何在closedXml c#中禁用自动筛选

尝试使用下面的代码,它应该可以很好地工作

ws.Tables.FirstOrDefault().ShowAutoFilter = false;

我遇到了同样的问题,下面的代码对我不起作用,

ws.Tables.FirstOrDefault().ShowAutoFilter = false;

我有ClosedXML 0.93版本,对我有效的是:

ws.Tables.FirstOrDefault().SetShowAutoFilter(false);

您可以使用ws-Worksheet(1).AutoFilter.Clear()'Vb.net

这也可能起作用:

ws.AutoFilterMode = False

要删除所有表过滤器,可以使用LinqForEach。

ws.Tables.ForEach(x=>x.ShowAutoFilter = false);

在ClosedXML版本0.101.0(.net core 7)中,我需要使用:

worksheet.RangeUsed().SetAutoFilter(false);

以删除自动过滤器。如果没有这一点,ClosedXML会出现以前版本中没有出现的错误:

范围"worksheetname"!A1:F2与工作表的自动筛选重叠。