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