Ordenar datos en una columna con lista de orden personalizado
Escenarios de uso posibles
Puedes ordenar datos en la columna usando una lista personalizada. Esto se puede hacer usando el método DataSorter.addKey. Sin embargo, este método solo funciona si los ítems en la lista personalizada no contienen comas. Si contienen comas como “EE.UU.,US”, “China,CN” etc., entonces debes usar el método **DataSorter.addKey(number, SortOrder, string[])**. Aquí, el último parámetro no es una cadena, sino un arreglo de cadenas.
Ordenar datos en una columna con lista de orden personalizado
El siguiente código de ejemplo explica cómo usar el método **DataSorter.addKey(number, SortOrder, string[])** para ordenar datos con una lista de ordenamiento personalizada. Por favor, vea el archivo de Excel de muestra utilizado en este código y el archivo Excel de salida generado por él. La siguiente captura de pantalla muestra el efecto del código en el archivo de Excel de muestra al ejecutarse.

Código de muestra
<!DOCTYPE html>
<html>
<head>
<title>Aspose.Cells Example - Custom Sort List</title>
</head>
<body>
<h1>Custom Sort List Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx,.csv" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, SaveFormat, Utils } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
if (!fileInput.files.length) {
document.getElementById('result').innerHTML = '<p style="color: red;">Please select an Excel file.</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Instantiating a Workbook object from uploaded file
const wb = new Workbook(new Uint8Array(arrayBuffer));
// Access first worksheet
const ws = wb.worksheets.get(0);
// Specify cell area - sort from A1 to A40
const ca = AsposeCells.CellArea.createCellArea("A1", "A40");
// Create Custom Sort list
const customSortList = ["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, AsposeCells.SortOrder.Ascending, customSortList);
wb.dataSorter.sort(ws.cells, ca);
// Save the output Excel file
const outputData = wb.save(SaveFormat.Xlsx);
const blob = new Blob([outputData]);
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'outputSortData_CustomSortList.xlsx';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download Excel File';
document.getElementById('result').innerHTML = '<p style="color: green;">Sorting completed successfully! Click the download link to get the modified file.</p>';
});
</script>
</html>