Как я могу получить Диапазон фильтрованных строк с помощью Excel Interop?

Я использую блоки Excel Interop для своего проекта, если я хочу использовать автоматический фильтр с затем, это - возможное использование

sheet.UsedRange.AutoFilter(1,SheetNames[1],Microsoft.Office.Interop.Excel.XlAutoFilterOperator.xlAnd,oMissing,false)

но как я могу получить фильтрованные строки??

у кого-либо может быть идея??

7
задан Oorang 30 December 2009 в 03:35
поделиться

1 ответ

После фильтрации диапазона вы можете получить доступ к ячейкам, которые соответствуют критериям фильтрации, используя метод Range.SpecialCells , передавая значение 'Excel. XlCellType.xlCellTypeVisible ', чтобы получить видимые ячейки.

На основе приведенного выше примера кода доступ к видимым ячейкам должен выглядеть примерно так:

Excel.Range visibleCells = sheet.UsedRange.SpecialCells(
                               Excel.XlCellType.xlCellTypeVisible, 
                               Type.Missing)

Оттуда вы можете получить доступ к каждой ячейке в видимом диапазоне через коллекцию Range.Cells или доступ к каждой строке, сначала обращаясь к областям через коллекцию Range.Areas, а затем повторяя каждую строку в коллекции Rows для каждой области. Например:

foreach (Excel.Range area in visibleCells.Areas)
{
    foreach (Excel.Range row in area.Rows)
    {
        // Process each un-filtered, visible row here.
    }
}

Надеюсь, это поможет!

Майк

14
ответ дан 6 December 2019 в 14:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: