7

我正在使用 C# 在基于 Windows 窗体的应用程序中将数据表导出到 excel 中。FilterList 具有以下值

string[] FilterList = new string[] {"Red", "Blue"};

但我只得到由“蓝色”过滤的值。下面是我在其中一个列上应用过滤器的部分代码。我尝试过滤的列中有 7 个不同的值,我只想从中选择 2 个。

Microsoft.Office.Interop.Excel.Application app = new
Microsoft.Office.Interop.Excel.Application();   
        app.Visible = false;

        Workbook wb = app.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);   
        Worksheet ws = (Worksheet)wb.ActiveSheet;

       // Some business logic to fill the excel.............

        Range firstRow = (Excel.Range)ws.Rows[1];
        firstRow.Activate();
        firstRow.Select();
        firstRow.AutoFilter(5, FilterList.Count > 0 ? FilterList :
        Type.Missing,Excel.XlAutoFilterOperator.xlAnd, Type.Missing, true);

我在这里做错了什么,任何帮助

4

1 回答 1

11

好的,你去:

Range 的 Autofilter 方法的第三个参数接受 XlAutoFilterOperator,我将其更改为,xlFilterValues而不是xlAnd因为我使用单个条件对象但具有多个条件。下面是我为让过滤器选择 2 个值所做的代码更改。

Range.AutoFilter(5, FilterList.Count > 0 ? FilterList.ToArray() : Type.Missing,
Excel.XlAutoFilterOperator.xlFilterValues, Type.Missing, true);

来源:SocialMSDN

希望它可以帮助其他 SO 用户。

于 2013-03-12T09:00:03.950 回答