Dopo aver filtrato l'intervallo, è possibile accedere alle celle che superano i criteri del filtro utilizzando il metodo Range.SpecialCells, passando in un valore di 'Excel.XlCellType.xlCellTypeVisible' per ottenere le celle visibili.
Sulla base della sua codice di esempio, al di sopra, l'accesso alle celle visibili dovrebbe essere simile a questo:
Excel.Range visibleCells = sheet.UsedRange.SpecialCells(
Excel.XlCellType.xlCellTypeVisible,
Type.Missing)
Da lì si può accedere a ogni cella nel campo del visibile, attraverso la collezione '' Range.Cells oppure accedi a ciascuna riga, accedendo per prima cosa alle aree tramite la raccolta 'Range.Areas' e quindi ripetendo ogni riga all'interno della raccolta 'Righe' per ogni area. Ad esempio:
foreach (Excel.Range area in visibleCells.Areas)
{
foreach (Excel.Range row in area.Rows)
{
// Process each un-filtered, visible row here.
}
}
Spero che questo aiuti!
Mike
fonte
2009-12-16 22:56:56
Sì !! grazie che ha aiutato ... – shahjapan
Cool, felice ha funzionato per te, Shahjapan. :) –
Il down-rider può spiegarsi? Questa è una soluzione pulita e ha funzionato per il poster originale. C'è qualcosa che non ha funzionato per te qui? –