C#Excel Advanced AutoFilter排除值列表

时间:2013-11-07 03:04:35

标签: c# excel excel-interop autofilter

我想使用C#将自动过滤器应用于Excel中的列,但是只想显示等于指定列表的值。

原始列表如下所示:

Unfiltered List

我希望使用以下条件"<>apple""<>orange"进行过滤 这应该会产生一个如下所示的列表:

enter image description here

但是,使用以下代码仅显示我所追求的相反:

private void ActivateAutoFilter()
        {
        this.Range["A1", "C1"].Value2 = GetArrayFromList(new List<string>() { "H1", "H2", "H3" });            
        this.Range["A2", "C2"].Value2 = GetArrayFromList(new List<string>() { "apple", "apple", "apple" });
        this.Range["A3", "C3"].Value2 = GetArrayFromList(new List<string>() { "orange", "orange", "orange" });
        this.Range["A4", "C4"].Value2 = GetArrayFromList(new List<string>() { "pear", "pear", "pear" });

        Microsoft.Office.Tools.Excel.NamedRange my_named_range = this.Controls.AddNamedRange(this.Range["A1", "C1"], "MY_NAMED_RANGE");

        string[] listFilter = new string[] { "apple", "orange" };
        my_named_range.AutoFilter(1, listFilter, Excel.XlAutoFilterOperator.xlFilterValues, System.Type.Missing, true);
        }

逆:

Inverse Result

然而,如果我将条件从{ "apple", "orange" }更改为:{ "<>apple", "<>orange" },我会收到错误消息。知道如何指定要过滤掉的项目列表吗?

先谢谢!

0 个答案:

没有答案