Ordenar datos en columna con lista de ordenación personalizada

Posibles escenarios de uso

Puede ordenar los datos en la columna usando una lista personalizada. Esto se puede hacer usandoDataSorter.AddKey (clave int, Orden de clasificación, Cadena customList)método. Sin embargo, este método solo funciona si los elementos de la lista personalizada no tienen comas dentro de ellos. Si tienen comas como “EE. UU., EE. UU.”, “China, CN”, etc., debe usar [DataSorter.AddKey Method (Int32, SortOrder,String[]))](https://reference. aspose.com/cells/net/aspose.cells.datasorter/addkey/methods/3). Aquí, el último parámetro no es String sino una matriz de cadenas.

Ordenar datos en columna con lista de ordenación personalizada

El siguiente código de muestra explica cómo usar [DataSorter.AddKey Method (Int32, SortOrder,String[]))](https://reference.aspose.com/cells/net/aspose.cells.datasorter/addkey /methods/3) método para ordenar datos con una lista de clasificación personalizada. Consulte el [archivo de Excel de muestra] (50528327.xlsx) utilizado en este código y el [archivo de Excel de salida] (50528328.xlsx) generado por él. La siguiente captura de pantalla muestra el efecto del código en el archivo de muestra de Excel durante la ejecución.

todo:imagen_alternativa_texto

Código de muestra

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
//Load the source Excel file
Workbook wb = new Workbook(sourceDir + "sampleSortData_CustomSortList.xlsx");
//Access first worksheet
Worksheet ws = wb.Worksheets[0];
//Specify cell area - sort from A1 to A40
CellArea ca = CellArea.CreateCellArea("A1", "A40");
//Create Custom Sort list
string[] customSortList = new string[] { "USA,US", "Brazil,BR", "China,CN", "Russia,RU", "Canada,CA" };
//Add Key for Column A, Sort it in Ascending Order with Custom Sort List
wb.DataSorter.AddKey(0, SortOrder.Ascending, customSortList);
wb.DataSorter.Sort(ws.Cells, ca);
//Save the output Excel file
wb.Save(outputDir + "outputSortData_CustomSortList.xlsx");