Obtenez tous les indices des lignes masquées après le rafraîchissement de l AutoFilter

Scénarios d’utilisation possibles

Lorsque vous appliquez le filtre automatique sur les cellules de la feuille de calcul, certaines des lignes sont automatiquement masquées. Mais il se peut que certaines des lignes soient déjà masquées manuellement par l’utilisateur final d’Excel et qu’elles ne soient pas masquées par un filtre automatique. Il est donc difficile de savoir quelles sont les lignes masquées par le filtre automatique et lesquelles sont masquées manuellement par l’utilisateur final d’Excel. Aspose.Cells résout ce problème en utilisant la méthode int[] AutoFilter.Refresh(bool hideRows). Cette méthode renvoie les indices de lignes de toutes les lignes qui sont masquées par le filtre automatique et non manuellement par l’utilisateur final d’Excel.

Obtenir tous les indices des lignes masquées après le rafraîchissement de l’Autofiltre

Veuillez consulter le code d’exemple suivant qui charge le fichier Excel d’exemple contenant certaines des lignes masquées manuellement par l’utilisateur final d’Excel. Le code applique le filtre automatique et le rafraîchit à l’aide de la méthode int[] AutoFilter.Refresh(bool hideRows) qui renvoie les indices de lignes de toutes les lignes masquées par le filtre automatique. Il affiche ensuite les indices des lignes masquées sur la console avec les noms et les valeurs des cellules.

Code d’exemple

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
//Load the sample Excel file
Workbook wb = new Workbook(sourceDir + "sampleGetAllHiddenRowsIndicesAfterRefreshingAutoFilter.xlsx");
//Access first worksheet
Worksheet ws = wb.Worksheets[0];
//Apply autofilter
ws.AutoFilter.AddFilter(0, "Orange");
//True means, it will refresh autofilter and return hidden rows.
//False means, it will not refresh autofilter but return same hidden rows.
int[] rowIndices = ws.AutoFilter.Refresh(true);
Console.WriteLine("Printing Rows Indices, Cell Names and Values Hidden By AutoFilter.");
Console.WriteLine("--------------------------");
for (int i = 0; i < rowIndices.Length; i++)
{
int r = rowIndices[i];
Cell cell = ws.Cells[r, 0];
Console.WriteLine(r + "\t" + cell.Name + "\t" + cell.StringValue);
}

Sortie console

Printing Rows Indices, Cell Names and Values Hidden By AutoFilter.

\--------------------------

1       A2      Apple

2       A3      Apple

3       A4      Apple

6       A7      Apple

7       A8      Apple

11      A12     Pear

12      A13     Pear