我不确定是否传递列表,但你绝对可以传递数组:
string[] listfilter = new string[] { "2", "3", "4" };
xlWorksheet.get_Range("A1", "B50").AutoFilter(1, listfilter, Excel.XlAutoFilterOperator.xlFilterValues,
Missing.Value, true);
你可以找到不同的成员XlAutoFilterOperator
here http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.xlautofilteroperator.aspx.
尝试查找工作表中最后使用的行而不是为整个列设置过滤器也可能是一个想法,因为这可能会减慢速度:
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;