我使用C#将数据表导出到基于Windows窗体的应用程序中的excel。 FilterList具有以下值
string[] FilterList = new string[] {"Red", "Blue"};
但我只得到“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);
我在这里做错了什么,任何帮助
答案 0 :(得分:4)
好的,你走了:
Range的Autofilter方法的第3个参数接受XlAutoFilterOperator,我将其更改为xlFilterValues
而不是xlAnd
,因为我使用单个条件对象但具有多个条件。下面是我为使过滤器选择2个值所做的代码更改。
Range.AutoFilter(5, FilterList.Count > 0 ? FilterList.ToArray() : Type.Missing,
Excel.XlAutoFilterOperator.xlFilterValues, Type.Missing, true);
来源:SocialMSDN
希望它可以帮助其他SO用户。