Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
高级过滤excel与c#_C#_Excel - Fatal编程技术网

高级过滤excel与c#

高级过滤excel与c#,c#,excel,C#,Excel,我需要做一个excel表格中的过滤器,我想知道是否有可能做这样的过滤器 List<string> listFilter = new List<string>(); listFilter.Add("3"); listFilter.Add("4"); object _missing = System.Reflection.Missing.Value; Microsoft.Off

我需要做一个excel表格中的过滤器,我想知道是否有可能做这样的过滤器

 List<string> listFilter = new List<string>();
            listFilter.Add("3");
            listFilter.Add("4");

            object _missing = System.Reflection.Missing.Value;
            Microsoft.Office.Interop.Excel.Range oRng1 = xlWorkSheet.Range["A1", "A1048576"];
            oRng1.AutoFilter(1, listFilter, Microsoft.Office.Interop.Excel.XlAutoFilterOperator.xlAnd, _missing, true);
            oRng1.Borders.LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
List listFilter=new List();
添加(“3”);
添加(“4”);
对象_missing=System.Reflection.missing.Value;
Microsoft.Office.Interop.Excel.Range oRng1=xl工作表。范围[“A1”,“A1048576”];
oRng1.AutoFilter(1,listFilter,Microsoft.Office.Interop.Excel.XlAutoFilterOperator.xlAnd,_缺失,为true);
oRng1.Borders.LineStyle=Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
我知道这段代码不起作用,但我想在filter参数中做一个dinamic列表。
有人能告诉我怎么做吗?

我不确定是否要传递列表,但您肯定可以传递数组:

string[] listfilter = new string[] { "2", "3", "4" };
xlWorksheet.get_Range("A1", "B50").AutoFilter(1, listfilter, Excel.XlAutoFilterOperator.xlFilterValues,
    Missing.Value, true);
您可以找到
XlAutoFilterOperator
的不同成员

也可以尝试查找工作表中最后使用的行,而不是为整个列设置筛选器,因为这可能会使速度减慢一点:

int lastRow = xlWorksheet.Range["A:A"].Find("*", Missing.Value, Missing.Value, Missing.Value,
    Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlPrevious, false, Missing.Value,
    Missing.Value).Row;

如果我想根据
>=
标准筛选列,该怎么办?因此,我希望列值应该大于或等于
listfilter
数组中的一个值。你能帮我吗?嗨,拉杰。对不起,我已经八年没碰过这个代码了!我不知道你现在会怎么做。我的建议是创建一个你自己的问题,你会从其他人那里得到更多的关注。酷!无论如何谢谢你,希德