Trier des données dans une colonne avec une liste de tri personnalisée avec C++
Scénarios d’utilisation possibles
Vous pouvez trier des données dans une colonne à l’aide d’une liste personnalisée. Cela peut être fait en utilisant la méthode DataSorter::AddKey(int key, SortOrder order, String customList). Cependant, cette méthode ne fonctionne que si les éléments de la liste personnalisée ne contiennent pas de virgules. Si elles contiennent des virgules comme “USA,US”, “China,CN”, vous devez utiliser la méthode **DataSorter::AddKey Method (Int32, SortOrder, String[])**. Ici, le dernier paramètre n’est pas une chaîne, mais un tableau de chaînes.
Trier les données dans une colonne avec une liste de tri personnalisée
Le code d’exemple suivant explique comment utiliser la méthode **DataSorter::AddKey Method (Int32, SortOrder, String[])** pour trier les données avec une liste de tri personnalisée. Veuillez voir le fichier Excel d’exemple utilisé dans ce code et le fichier Excel de sortie généré par celui-ci. La capture d’écran suivante montre l’effet du code sur le fichier Excel d’exemple lors de son exécution.
Code d’exemple
#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\\");
// Load the source Excel file
Workbook wb(srcDir + u"sampleSortData_CustomSortList.xlsx");
// Access first worksheet
Worksheet ws = wb.GetWorksheets().Get(0);
// Specify cell area - sort from A1 to A40
CellArea ca = CellArea::CreateCellArea(u"A1", u"A40");
// Create Custom Sort list
Vector<U16String> customSortList = { u"USA,US", u"Brazil,BR", u"China,CN", u"Russia,RU", u"Canada,CA" };
// Add Key for Column A, Sort it in Ascending Order with Custom Sort List
wb.GetDataSorter().AddKey(0, SortOrder::Ascending, customSortList);
wb.GetDataSorter().Sort(ws.GetCells(), ca);
// Save the output Excel file
wb.Save(outDir + u"outputSortData_CustomSortList.xlsx");
std::cout << "Data sorted successfully with custom sort list!" << std::endl;
Aspose::Cells::Cleanup();
}