Указание предупреждения сортировки при сортировке данных
Возможные сценарии использования
Пожалуйста, учтите этот текстовый набор, т.е. {11, 111, 22}. Этот текстовый набор сортируется, потому что в терминах текста 111 идет перед 22. Но, если вы хотите отсортировать этот набор не как текст, а как числа, то он станет {11, 22, 111}, потому что по числовому значению 111 идет после 22. Aspose.Cells предоставляет свойство {0} для решения этой проблемы. Пожалуйста, установите это свойство в true, и ваш текстовый набор будет сортироваться как числовые данные. Ниже показано предупреждение о сортировке, отображаемое Microsoft Excel, когда текстовые данные, похожие на числовые, сортируются.
Образец кода
В следующем образце кода показано использование свойства DataSorter.SortAsNumber, как объяснено ранее. Пожалуйста, проверьте его образцовый файл Excel и выходной файл Excel для получения дополнительной помощи.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
//The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
//Create workbook. | |
Workbook workbook = new Workbook(dataDir + "sampleSortAsNumber.xlsx"); | |
//Access first worksheet. | |
Worksheet worksheet = workbook.Worksheets[0]; | |
//Create your cell area. | |
CellArea ca = CellArea.CreateCellArea("A1", "A20"); | |
//Create your sorter. | |
DataSorter sorter = workbook.DataSorter; | |
//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.SortAsNumber = true; | |
//Perform sort. | |
sorter.Sort(worksheet.Cells, ca); | |
//Save the output workbook. | |
workbook.Save(dataDir + "outputSortAsNumber.xlsx"); |