高级过滤excel与c#
我需要做一个excel表格中的过滤器,我想知道是否有可能做这样的过滤器高级过滤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
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
数组中的一个值。你能帮我吗?嗨,拉杰。对不起,我已经八年没碰过这个代码了!我不知道你现在会怎么做。我的建议是创建一个你自己的问题,你会从其他人那里得到更多的关注。酷!无论如何谢谢你,希德