Сортировка данных рабочего листа

Сортировка данных рабочего листа

Чтобы отсортировать данные на листе с помощью API из Aspose.Cells.GridDesktop, выполните следующие действия:

  • Прежде всего создайте глобальный объектдиапазон ячеек чтобы к нему можно было получить доступ в любом месте вашего класса
  • Создайте обработчик событий дляСелектедселлранжечанжед событиеGridDesktop. Селектедселлранжечанжед событие запускается каждый раз, когда изменяется диапазон ячеек, выбранный пользователем. Например, если пользователь выбирает ячейки (содержащие данные для сортировки), то каждый раз, когда его диапазон выбора будет меняться, это событие будет запускаться.
  • Обработчик события предоставляетCellRangeEventArgs аргумент, который дополнительно предоставляет диапазон обновления ячеек (выбранных пользователем) в формедиапазон ячеек объект. Итак, в этом обработчике событий мы назначим этодиапазон ячеек объект (содержащий обновленный диапазон ячеек) в глобальныйдиапазон ячеекобъект, чтобы его также можно было использовать в другой части кода. Чтобы убедиться, что мы не потеряли диапазон ячеек, мы напишем код обработчика события внутри условия
  • Теперь мы можем написать код для сортировки данных рабочей таблицы. Прежде всего, получите доступ к нужному рабочему листу
  • СоздатьДиапазон сортировки объект, который будет хранить диапазон ячеек, данные которых должны быть отсортированы. ВДиапазон сортировки конструктора мы можем указать рабочий лист, индексы начальной строки и столбца, количество строк и столбцов для сортировки, ориентацию сортировки (например, сверху вниз или слева направо) и т. д.
  • Теперь мы можем позвонитьСортировать методДиапазон сортировки объект для выполнения сортировки данных. ВСортировать метод, мы можем указать индекс столбца или строки для сортировки и порядок сортировки (это может бытьпо возрастанию или жеПо убыванию по вашим требованиям)
  • Наконец, мы можем позвонитьаннулировать методGridDesktop для перерисовки ячеек.

В приведенном ниже примере мы продемонстрировали, как сортировать данные в столбце.

Создайте глобальный объект CellRange иСелектедселлранжечанжедсобытие GridDesktop. Теперь напишите код, как показано ниже:

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Creating global variable of CellRange
CellRange range;
private void gridDesktop1_SelectedCellRangeChanged(object sender, Aspose.Cells.GridDesktop.CellRangeEventArgs e)
{
// Checking if the range of cells is not empty
if ((e.CellRange.EndColumn - e.CellRange.StartColumn > 0) ||
(e.CellRange.EndRow - e.CellRange.StartRow > 0))
{
// Assigning the updated CellRange to global variable
range = e.CellRange;
}
}

Теперь пишем метод дляСортировка по возрастанию . Вы можете создать кнопку дляСортировка по возрастанию и напишите ниже код внутри егоНажмите Событие.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing a worksheet that is currently active
Worksheet sheet = gridDesktop1.GetActiveWorksheet();
// Creating SortRange object
SortRange sr = new SortRange(sheet, range.StartRow,
range.StartColumn, range.EndRow - range.StartRow + 1,
range.EndColumn - range.StartColumn + 1,
SortOrientation.SortTopToBottom, true);
// Sorting data in the specified column in ascending order
sr.Sort(range.StartColumn, Aspose.Cells.GridDesktop.SortOrder.Ascending);
// Redrawing cells of the Grid
gridDesktop1.Invalidate();

Наконец, мы пишем код для достиженияСортировка по убыванию функциональность. СоздатьСортировка по убыванию кнопку и напишите ниже код внутри ееНажмите Событие.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing a worksheet that is currently active
Worksheet sheet = gridDesktop1.GetActiveWorksheet();
// Creating SortRange object
SortRange sr = new SortRange(sheet, range.StartRow, range.StartColumn,
range.EndRow - range.StartRow + 1,
range.EndColumn - range.StartColumn + 1,
SortOrientation.SortTopToBottom, true);
// Sorting data in the specified column in descending order
sr.Sort(range.StartColumn, Aspose.Cells.GridDesktop.SortOrder.Descending);
// Redrawing cells of the Grid
gridDesktop1.Invalidate();