Я использую блоки Excel Interop для своего проекта, если я хочу использовать автоматический фильтр с затем, это - возможное использование
sheet.UsedRange.AutoFilter(1,SheetNames[1],Microsoft.Office.Interop.Excel.XlAutoFilterOperator.xlAnd,oMissing,false)
но как я могу получить фильтрованные строки??
у кого-либо может быть идея??
После фильтрации диапазона вы можете получить доступ к ячейкам, которые соответствуют критериям фильтрации, используя метод 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.
}
}
Надеюсь, это поможет!
Майк