如何在closedXml c#中禁用自动过滤器?

时间:2015-12-22 09:04:49

标签: c# excel closedxml

我在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();

5 个答案:

答案 0 :(得分:14)

尝试使用以下代码,它应该可以正常工作

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

答案 1 :(得分:0)

这可能也有效:

ws.AutoFilterMode = False

答案 2 :(得分:0)

要删除所有表格过滤器,可以使用Linq ForEach。

>> sum([2,3,4;2,3,4;2,3,4;], 1)         % does COLUMN-WISE SUMMATION
ans =

    6    9   12

>> sum([2,3,4;2,3,4;2,3,4;], 2)         % does ROW-WISE SUMMATION
ans =

   9
   9
   9

答案 3 :(得分:0)

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

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

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

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

答案 4 :(得分:0)

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