Tri des données de feuille de calcul

Tri des données de feuille de calcul

Pour trier les données dans une feuille de calcul à l’aide du API de Aspose.Cells.GridDesktop, veuillez suivre les étapes ci-dessous :

  • Créez d’abord un objet global deCellRange afin qu’il soit accessible n’importe où dans le cadre de votre classe
  • Créer un gestionnaire d’événements pourSelectedCellRangeChanged événement deGrilleDesktop. SelectedCellRangeChanged L’événement est déclenché chaque fois qu’une plage de cellules sélectionnée par un utilisateur est modifiée. Par exemple, si un utilisateur sélectionne des cellules (contenant des données à trier) alors chaque fois que sa plage de sélection changerait, cet événement serait déclenché.
  • Le gestionnaire d’événements fournitCellRangeEventArgsCellRangeEventArgs argument qui fournit en outre la plage de mise à jour des cellules (sélectionnée par l’utilisateur) sous la forme d’unCellRange objet. Donc, dans ce gestionnaire d’événements, nous assignerons ceciCellRange objet (contenant la plage de cellules mise à jour) au globalCellRangeobjet afin qu’il puisse également être utilisé dans d’autres parties du code. Pour nous assurer que nous ne perdons pas la plage de cellules, nous écrirons le code du gestionnaire d’événements dans une condition
  • Nous pouvons maintenant écrire du code pour trier les données de la feuille de travail. Tout d’abord, accédez à une feuille de calcul souhaitée
  • Créer unTrierPlage objet qui conservera la plage de cellules dont les données doivent être triées. DansTrierPlage constructeur, nous pouvons spécifier la feuille de calcul, les indices de la ligne et de la colonne de départ, le nombre de lignes et de colonnes à trier, l’orientation du tri (comme de haut en bas ou de gauche à droite), etc.
  • Maintenant, nous pouvons appelerTrier méthode deTrierPlage objet pour effectuer le tri des données. DansTrier méthode, nous pouvons spécifier l’index de la colonne ou de la ligne à trier et l’ordre de tri (qui peut êtreAscendant ou alorsDescendant selon vos besoins)
  • Enfin, on peut appelerInvalider méthode deGrilleDesktop pour redessiner les cellules.

Dans l’exemple ci-dessous, nous avons montré comment trier les données dans une colonne.

Créez un objet global de CellRange etSelectedCellRangeChangedévénement de GridDesktop. Maintenant, écrivez le code comme indiqué ci-dessous :

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Creating global variable of CellRange
CellRange range;
private void gridDesktop1_SelectedCellRangeChanged(object sender, Aspose.Cells.GridDesktop.CellRangeEventArgs e)
{
// Checking if the range of cells is not empty
if ((e.CellRange.EndColumn - e.CellRange.StartColumn > 0) ||
(e.CellRange.EndRow - e.CellRange.StartRow > 0))
{
// Assigning the updated CellRange to global variable
range = e.CellRange;
}
}

Maintenant, nous écrivons la méthode pourTri croissant . Vous pouvez créer un bouton pourTri croissant et écrivez le code ci-dessous à l’intérieur de sonCliquez sur Événement.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing a worksheet that is currently active
Worksheet sheet = gridDesktop1.GetActiveWorksheet();
// Creating SortRange object
SortRange sr = new SortRange(sheet, range.StartRow,
range.StartColumn, range.EndRow - range.StartRow + 1,
range.EndColumn - range.StartColumn + 1,
SortOrientation.SortTopToBottom, true);
// Sorting data in the specified column in ascending order
sr.Sort(range.StartColumn, Aspose.Cells.GridDesktop.SortOrder.Ascending);
// Redrawing cells of the Grid
gridDesktop1.Invalidate();

Enfin, nous écrivons du code pour réaliserTri décroissant Fonctionnalité. Créer unTri décroissant bouton et écrivez le code ci-dessous à l’intérieur de sonCliquez sur Événement.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing a worksheet that is currently active
Worksheet sheet = gridDesktop1.GetActiveWorksheet();
// Creating SortRange object
SortRange sr = new SortRange(sheet, range.StartRow, range.StartColumn,
range.EndRow - range.StartRow + 1,
range.EndColumn - range.StartColumn + 1,
SortOrientation.SortTopToBottom, true);
// Sorting data in the specified column in descending order
sr.Sort(range.StartColumn, Aspose.Cells.GridDesktop.SortOrder.Descending);
// Redrawing cells of the Grid
gridDesktop1.Invalidate();