我在两列中按三个不同的标准过滤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#的新手,想要为这样的场景提供更清洁的过滤器解决方案。
提前致谢。
答案 0 :(得分:1)
如果您将过滤器应用于更多列,您可以将详细信息放入集合中并循环遍历它,但只有两个更有意义的是保持原样。可读性非常重要,您可以立即了解该代码,并立即了解过滤器正在应用于两列。
除非在其他地方使用它们,否则您总是可以将字符串直接放在方法调用中。
jobMatRange.AutoFilter(2, "I Job Issue", Excel.XlAutoFilterOperator.xlOr, "W Job Withdrawal", true);
jobMatRange.AutoFilter(29, "1", Excel.XlAutoFilterOperator.xlOr, Type.Missing, true);