使用c#在两个单独的列中通过三个条件过滤excel范围

我正在过滤两个列的三个不同标准的Excel范围,列“B”由matFilter1过滤, matFilter2和列“AC”由matFitler3过滤,我使用的代码是:

//Filter Job Data Sheet for Material Transactions string matFilter1 = "I Job Issue"; string matFilter2 = "W Job Withdrawal"; string matFilter3 = "1"; Excel.Range jobMatRange = JobDataSheet.UsedRange; //Define range of Job Material Sheet jobMatRange.AutoFilter(2, matFilter1, Excel.XlAutoFilterOperator.xlOr, matFilter2, true); //Apply matFilter1 and matFilter2 to column2 in range jobMatRange.AutoFilter(29, matFilter3, Excel.XlAutoFilterOperator.xlOr, Type.Missing, true); //Apply matFilter3 to column29 in range 

现在,这工作正常,我只是想知道是否有一个更好,更干净的方式来做到这一点。 我是新来的C#,并希望一些干净的filter解决scheme的input这样的情况。

提前致谢。

如果您将筛选器应用于更多列,则可以将详细信息放入一个集合中并循环,但只有两个更有意义。 可读性是重要的,你可以看看代码立即明白,一个filter正在应用到两列。

除非在其他地方使用,否则可以将string直接放在方法调用中。

 jobMatRange.AutoFilter(2, "I Job Issue", Excel.XlAutoFilterOperator.xlOr, "W Job Withdrawal", true); jobMatRange.AutoFilter(29, "1", Excel.XlAutoFilterOperator.xlOr, Type.Missing, true);