Arbeitsblattdaten sortieren
Contents
[
Hide
]
Das Sortieren ist eine wichtige Routineaufgabe, die wir meistens bei der Verarbeitung von Daten anwenden. In diesem Thema werden wir anhand eines einfachen Beispiels diskutieren, wie wir Daten in einem Arbeitsblatt sortieren können.
Arbeitsblattdaten sortieren
Um Daten in einem Arbeitsblatt mit API von Aspose.Cells.GridDesktop zu sortieren, führen Sie bitte die folgenden Schritte aus:
- Erstellen Sie zunächst ein globales Objekt vonCellRange sodass überall im Bereich Ihrer Klasse darauf zugegriffen werden kann
- Erstellen Sie einen Ereignishandler fürSelectedCellRangeChanged Veranstaltung vonGridDesktop. SelectedCellRangeChanged -Ereignis wird jedes Mal ausgelöst, wenn ein von einem Benutzer ausgewählter Zellbereich geändert wird. Wenn ein Benutzer beispielsweise Zellen auswählt (die zu sortierende Daten enthalten), wird dieses Ereignis jedes Mal ausgelöst, wenn sich sein Auswahlbereich ändert.
- Der Event-Handler bietetCellRangeEventArgs Argument, das außerdem den Aktualisierungsbereich von Zellen (vom Benutzer ausgewählt) in Form von a bereitstelltCellRange Objekt. In diesem Event-Handler werden wir dies also zuweisenCellRange Objekt (enthält den aktualisierten Zellbereich) zum globalenCellRange-Objekt, sodass es auch in anderen Teilen des Codes verwendet werden kann. Um sicherzustellen, dass wir den Zellbereich nicht verlieren, schreiben wir Event-Handler-Code in eine Bedingung
- Jetzt können wir Code schreiben, um Worksheet-Daten zu sortieren. Greifen Sie zunächst auf ein gewünschtes Arbeitsblatt zu
- Ein … kreierenSortierbereich Objekt, das den Bereich der Zellen behält, deren Daten sortiert werden sollen. InSortierbereich Konstruktor können wir das Arbeitsblatt, die Indizes der Startzeile und -spalte, die Anzahl der zu sortierenden Zeilen und Spalten, die Sortierrichtung (wie von oben nach unten oder von links nach rechts) usw. angeben.
- Jetzt können wir anrufenSortieren Methode vonSortierbereich Objekt, um die Sortierung der Daten durchzuführen. InSortieren Methode können wir den Index der zu sortierenden Spalte oder Zeile und die Sortierreihenfolge angeben (das kann seinAufsteigend oderAbsteigend nach Ihren Wünschen)
- Endlich können wir anrufenUngültig machen Methode vonGridDesktop Zellen neu zeichnen.
Im folgenden Beispiel haben wir gezeigt, wie Daten in einer Spalte sortiert werden.
Erstellen Sie ein globales Objekt von CellRange undSelectedCellRangeChangedEreignis von GridDesktop. Schreiben Sie nun den Code wie unten angegeben:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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; | |
} | |
} |
Jetzt schreiben wir eine Methode fürAufsteigende Sortierung . Sie können eine Schaltfläche für erstellenAufsteigende Sortierung und schreiben Sie den folgenden Code hineinKlicken Vorfall.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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(); |
Schließlich schreiben wir etwas Code, um das zu erreichenAbsteigende Sortierung Funktionalität. Ein … kreierenAbsteigende Sortierung Schaltfläche und schreiben Sie den folgenden Code hineinKlicken Vorfall.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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(); |