Указание предупреждения сортировки при сортировке данных
Возможные сценарии использования
Рассмотрим следующие текстовые данные, т. е. {11, 111, 22}. Эти текстовые данные отсортированы так из-за того, что в терминах текста 111 идет перед 22. Но если вы хотите отсортировать эти данные не как текст, а как числа, то они станут {11, 22, 111}, потому что по числовым значениям 111 идет после 22. Aspose.Cells предоставляет свойство DataSorter.SortAsNumber для решения этой проблемы. Пожалуйста, установите это свойство в true, и ваши текстовые данные будут отсортированы как числовые данные. Ниже показано предупреждение о сортировке, отображаемое Microsoft Excel при сортировке текстовых данных, которые выглядят как числовые.
Образец кода
В следующем образце кода иллюстрируется использование свойства DataSorter.SortAsNumber, как объяснено выше. Пожалуйста, ознакомьтесь с образцом Excel-файла и выходным Excel-файлом для получения дополнительной помощи.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getSharedDataDir(SpecifyingSortWarningWhileSortingData.class) + "data/"; | |
// Create workbook. | |
Workbook workbook = new Workbook(dataDir + "sampleSortAsNumber.xlsx"); | |
// Access first worksheet. | |
Worksheet worksheet = workbook.getWorksheets().get(0); | |
// Create your cell area. | |
CellArea ca = CellArea.createCellArea("A1", "A20"); | |
// Create your sorter. | |
DataSorter sorter = workbook.getDataSorter(); | |
// Find the index, since we want to sort by column A, so we should know | |
// the index for sorter. | |
int idx = CellsHelper.columnNameToIndex("A"); | |
// Add key in sorter, it will sort in Ascending order. | |
sorter.addKey(idx, SortOrder.ASCENDING); | |
sorter.setSortAsNumber(true); | |
// Perform sort. | |
sorter.sort(worksheet.getCells(), ca); | |
// Save the output workbook. | |
workbook.save(dataDir + "outputSortAsNumber.xlsx"); |