Datasortering med C++
Sortering av data i Microsoft Excel
För att sortera data i Microsoft Excel:
- Välj Data från Sortera-menyn. Sorteringsdialogen visas.
- Välj ett sorteringsalternativ.
I allmänhet utförs sortering på en lista - definierad som en sammanhängande grupp data där data visas i kolumner.
Sortera data med Aspose.Cells
Aspose.Cells tillhandahåller klassen DataSorter som används för att sortera data i stigande eller fallande ordning. Klassen har några viktiga medlemmar, till exempel egenskaper som Key1 … Key3 och Order1 … Order3. Dessa medlemmar används för att definiera sorterade nycklar och ange sorteringsordning för nyckeln.
Du måste definiera nycklar och ange sorteringsordningen innan du implementerar datasortering. Klassen tillhandahåller metoden Sort som används för att utföra datasortering baserat på celldata i ett arbetsblad.
Metoden Sort accepterar följande parametrar:
- Cells, cellerna för det underliggande arbetsbladet.
- CellArea, cellområdet. Definiera cellområdet innan du tillämpar datasortering.
Detta exempel använder mallfilen “Bok1.xls” skapad i Microsoft Excel. Efter att koden har utförts sorteras data på lämpligt sätt.
#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();
}
Sortera data med bakgrundsfärg
Excel erbjuder funktioner för att sortera data baserat på bakgrundsfärg. Samma funktion tillhandahålls med Aspose.Cells med användning av DataSorter där SortOnType.CellColor kan användas i AddKey() för att sortera data baserat på bakgrundsfärg. Alla celler som innehåller specificerad färg i AddKey(), funktion placeras överst eller nederst enligt SortOrder-inställningen och ordningen för resten av cellerna ändras inte alls.
Följande är provfiler som kan laddas ned för att testa denna funktion:
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();
}