高级filterexcel与c#
我需要在Excel工作表中做一个filter,我想知道是否有可能做这样的filter
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;
我知道这个代码不起作用,但我想在filter参数中做一个dynamic列表。 有人能告诉我,我怎么能这样做?
我不知道通过列表,但你可以肯定地传递数组:
string[] listfilter = new string[] { "2", "3", "4" }; xlWorksheet.get_Range("A1", "B50").AutoFilter(1, listfilter, Excel.XlAutoFilterOperator.xlFilterValues, Missing.Value, true);
你可以在这里findXlAutoFilterOperator
的不同成员。
尝试在工作表中find最后使用的行,而不是设置整个列的filter,这可能也是一个想法,因为这可能会使事情变得缓慢:
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;