Ordenar datos en una columna con lista de orden personalizado
Escenarios de uso posibles
Puede ordenar los datos en la columna utilizando una lista personalizada. Esto se puede hacer usando el método DataSorter.AddKey(int key, SortOrder order, String customList). Sin embargo, este método solo funciona si los elementos en la lista personalizada no tienen comas en su interior. Si tienen comas como “USA, US”, “China, CN”, etc., entonces debe utilizar el método [DataSorter.AddKey(int key, SortOrder order, String customList)](https://reference.aspose.com/cells/java/com.aspose.cells/datasorter#addKey(int,%20int,%20java.lang.String) Aquí, el último parámetro no es un String, sino un Array de Strings.
Ordenar datos en una columna con lista de orden personalizado
El siguiente código de ejemplo explica cómo utilizar el método DataSorter.AddKey(int key, SortOrder order, String[] customList) para ordenar datos con una lista de orden personalizado. Consulte el archivo de Excel de ejemplo utilizado en este código y el archivo de Excel de salida generado por él. La siguiente captura de pantalla muestra el efecto del código en el archivo de Excel de ejemplo al ejecutarlo.
Código de muestra
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
//Load the source Excel file | |
Workbook wb = new Workbook(srcDir + "sampleSortData_CustomSortList.xlsx"); | |
//Access first worksheet | |
Worksheet ws = wb.getWorksheets().get(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.getDataSorter().addKey(0, SortOrder.ASCENDING, customSortList); | |
wb.getDataSorter().sort(ws.getCells(), ca); | |
//Save the output Excel file | |
wb.save(outDir + "outputSortData_CustomSortList.xlsx"); |