如何限制 Excel Interop 中的 AutoFilter 仅作用于一列中的行?
How can I restrict an AutoFilter in Excel Interop to only act on the rows in one column?
我想允许对特定行 (6) 中的一列(A 或 1)中的值进行过滤。我可以为 所有 行中的列提供过滤器,如下所示:
Range sixthRow = (Range)_xlSheet.Rows[6];
sixthRow.AutoFilter(1,
Type.Missing,
XlAutoFilterOperator.xlAnd,
Type.Missing,
true);
...或者像这样:
Range column1Row6 = _xlSheet.Range[_xlSheet.Cells[6, 1], _xlSheet.Cells[6, 1]];
column1Row6.AutoFilter(1,
Type.Missing,
XlAutoFilterOperator.xlAnd,
Type.Missing,
true);
...所以它看起来像这样:
...但我只想要过滤第一列,从第 6 行开始("from row 6" 部分工作正常),而不是第 2、3、4 和 5 列(并且可能有更多)。
我怎样才能只在第一列(A 或 1)而不是在整行上使用过滤器?
如果我对你的问题的理解正确,我通常会使用一个技巧 Excel 来完成对单个列的过滤。我曾经突出显示整个列并点击筛选按钮,当您有数万行数据时,这真的很痛苦。
您可能知道,当您只突出显示一个单元格时,它会自动过滤整行,就好像说任何一个单元格都意味着 "nothing in particular" 被突出显示一样。
我很偶然地发现,如果您突出显示超出一个单元格的任何范围,它会试图弄清楚您的意思。在这种情况下,如果您突出显示 header 行 (A5) 和紧靠其下方的一个单元格,然后点击筛选器,它与突出显示整列的效果相同。
因此,在 C# 互操作术语中,这相当于该操作:
_xlSheet.Range[_xlSheet.Cells[5, 1], _xlSheet.Cells[6, 1]].AutoFilter();
我想允许对特定行 (6) 中的一列(A 或 1)中的值进行过滤。我可以为 所有 行中的列提供过滤器,如下所示:
Range sixthRow = (Range)_xlSheet.Rows[6];
sixthRow.AutoFilter(1,
Type.Missing,
XlAutoFilterOperator.xlAnd,
Type.Missing,
true);
...或者像这样:
Range column1Row6 = _xlSheet.Range[_xlSheet.Cells[6, 1], _xlSheet.Cells[6, 1]];
column1Row6.AutoFilter(1,
Type.Missing,
XlAutoFilterOperator.xlAnd,
Type.Missing,
true);
...所以它看起来像这样:
...但我只想要过滤第一列,从第 6 行开始("from row 6" 部分工作正常),而不是第 2、3、4 和 5 列(并且可能有更多)。
我怎样才能只在第一列(A 或 1)而不是在整行上使用过滤器?
如果我对你的问题的理解正确,我通常会使用一个技巧 Excel 来完成对单个列的过滤。我曾经突出显示整个列并点击筛选按钮,当您有数万行数据时,这真的很痛苦。
您可能知道,当您只突出显示一个单元格时,它会自动过滤整行,就好像说任何一个单元格都意味着 "nothing in particular" 被突出显示一样。
我很偶然地发现,如果您突出显示超出一个单元格的任何范围,它会试图弄清楚您的意思。在这种情况下,如果您突出显示 header 行 (A5) 和紧靠其下方的一个单元格,然后点击筛选器,它与突出显示整列的效果相同。
因此,在 C# 互操作术语中,这相当于该操作:
_xlSheet.Range[_xlSheet.Cells[5, 1], _xlSheet.Cells[6, 1]].AutoFilter();