DatenSortierung mit C++
Daten sortieren in Microsoft Excel
Um Daten in Microsoft Excel zu sortieren:
- Wählen Sie Daten im Sortieren-Menü aus. Der Sortieren-Dialog wird angezeigt.
- Wählen Sie eine Sortieroption aus.
Im Allgemeinen wird das Sortieren auf einer Liste durchgeführt - definiert als eine zusammenhängende Gruppe von Daten, bei der die Daten in Spalten angezeigt werden.
Daten mit Aspose.Cells sortieren
Aspose.Cells bietet die DataSorter-Klasse zur Sortierung von Daten in aufsteigender oder absteigender Reihenfolge. Die Klasse hat einige wichtige Elemente, wie z.B. Eigenschaften wie Key1 … Key3 und Order1 … Order3. Diese Elemente werden verwendet, um sortierte Schlüssel zu definieren und die Sortierreihenfolge des Schlüssels anzugeben.
Sie müssen Schlüssel definieren und die Sortierreihenfolge festlegen, bevor Sie das Daten sortieren implementieren. Die Klasse bietet die Sort-Methode, die verwendet wird, um Daten nach den Zelldaten in einem Arbeitsblatt zu sortieren.
Die Sort-Methode akzeptiert die folgenden Parameter:
- Cells, die Zellen für das zugrunde liegende Arbeitsblatt.
- CellArea, der Bereich von Zellen. Definieren Sie den Zellenbereich, bevor Sie das Daten sortieren anwenden.
In diesem Beispiel wird die Vorlagendatei “Buch1.xls” verwendet, die in Microsoft Excel erstellt wurde. Nach Ausführen des unten stehenden Codes wird die Daten entsprechend sortiert.
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input excel file
U16String inputFilePath = srcDir + u"book1.xls";
// Path of output excel file
U16String outputFilePath = outDir + u"output.out.xls";
// Create workbook
Workbook workbook(inputFilePath);
// Get the workbook datasorter object
DataSorter sorter = workbook.GetDataSorter();
// Set the first order for datasorter object
sorter.SetOrder1(SortOrder::Descending);
// Define the first key
sorter.SetKey1(0);
// Set the second order for datasorter object
sorter.SetOrder2(SortOrder::Ascending);
// Define the second key
sorter.SetKey2(1);
// Create a cells area (range)
CellArea ca = CellArea::CreateCellArea(0, 0, 13, 1);
// Sort data in the specified data range (A1:B14)
sorter.Sort(workbook.GetWorksheets().Get(0).GetCells(), ca);
// Save the excel file
workbook.Save(outputFilePath);
std::cout << "Data sorted successfully!" << std::endl;
Aspose::Cells::Cleanup();
}
Daten mit Hintergrundfarbe sortieren
Excel bietet Funktionen zur Sortierung von Daten basierend auf der Hintergrundfarbe. Die gleiche Funktion wird mit Aspose.Cells über den DataSorter bereitgestellt, in dem SortOnType.CellColor in AddKey() verwendet werden kann, um Daten basierend auf der Hintergrundfarbe zu sortieren. Alle Zellen, die die angegebene Farbe in der AddKey()-Funktion enthalten, werden oben oder unten platziert, je nach Einstellung von SortOrder, und die Reihenfolge der restlichen Zellen wird überhaupt nicht geändert.
Hier sind die Beispiel Dateien, die heruntergeladen werden können, um diese Funktion zu testen:
outputsampleBackGroundFile.xlsx
#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
int main()
{
Aspose::Cells::Startup();
// Source directory path
U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
// Output directory path
U16String outDir(u"..\\Data\\02_OutputDirectory\\");
// Path of input excel file
U16String inputFilePath = srcDir + u"CellsNet46500.xlsx";
// Path of output excel file
U16String outputFilePath = outDir + u"outputSortData_CustomSortList.xlsx";
// Create a workbook object and load template file
Workbook workbook(inputFilePath);
// Instantiate data sorter object
DataSorter sorter = workbook.GetDataSorter();
// Add key for second column for red color
sorter.AddColorKey(1, SortOnType::CellColor, SortOrder::Descending, Color::Red());
// Sort the data based on the key
sorter.Sort(workbook.GetWorksheets().Get(0).GetCells(), CellArea::CreateCellArea(u"A2", u"C6"));
// Save the output file
workbook.Save(outputFilePath);
std::cout << "Data sorted successfully!" << std::endl;
Aspose::Cells::Cleanup();
}