Сортировка данных

Сортировка данных в Microsoft Excel

Чтобы отсортировать данные в Microsoft Excel:

  1. Выберите Данные из меню Сортировка. Отобразится диалоговое окно сортировки.
  2. Выберите вариант сортировки.

Обычно сортировка выполняется в списке - это непрерывная группа данных, отображаемых в столбцах.

Диалоговое окно сортировки в Microsoft Excel

todo:image_alt_text

Сортировка данных с помощью Aspose.Cells

Aspose.Cells предоставляет класс DataSorter, используемый для сортировки данных по возрастанию или убыванию. У класса есть некоторые важные члены, например методы, такие как setKey1setKey2 и setOrder1setOrder2. Эти члены используются для определения отсортированных ключей и указания порядка сортировки ключей.

Перед реализацией сортировки данных необходимо определить ключи и установить порядок сортировки. В классе предоставляется метод sort, используемый для выполнения сортировки данных на основе данных ячейки на листе таблицы.

Метод sort принимает следующие параметры:

  • Cells, ячейки листа.
  • CellArea, диапазон ячеек. Определите область ячеек перед применением сортировки данных.

В этом примере показано, как сортировать данные с помощью Aspose.Cells API. В примере используется файл-шаблон “Book1.xls”, и данные для диапазона данных (A1:B14) сортируются на первом листе:

В этом примере используется файл шаблона “Book1.xls”, созданный в Microsoft Excel.

Файл Excel-шаблон с данными

todo:image_alt_text

После выполнения приведенного ниже кода данные сортируются должным образом, как видно из выходного файла Excel.

Выходной файл Excel после сортировки данных

todo:image_alt_text

// 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(DataSorting.class) + "data/";
// Instantiate a new Workbook object.
Workbook workbook = new Workbook(dataDir + "book1.xls");
// Get the workbook datasorter object.
DataSorter sorter = workbook.getDataSorter();
// Set the first order for datasorter object.
sorter.setOrder1(SortOrder.DESCENDING);
// Define the first key.
sorter.setKey1(0);
// Set the second order for datasorter object.
sorter.setOrder2(SortOrder.ASCENDING);
// Define the second key.
sorter.setKey2(1);
// Sort data in the specified data range (CellArea range: A1:B14)
CellArea cellArea = new CellArea();
cellArea.StartRow = 0;
cellArea.StartColumn = 0;
cellArea.EndRow = 13;
cellArea.EndColumn = 1;
sorter.sort(workbook.getWorksheets().get(0).getCells(), cellArea);
// Save the excel file.
workbook.save(dataDir + "DataSorting_out.xls");
// Print message
System.out.println("Sorting Done Successfully");

Сортировка данных с цветом фона

Excel предоставляет возможность сортировки данных на основе цвета фона. Ту же функциональность можно использовать с помощью Aspose.Cells, используя DataSorter, где SortOnType.CELL_COLOR может быть использован в addKey() для сортировки данных на основе цвета фона. Все ячейки, которые содержат указанный цвет в addKey() функции, размещаются вверху или внизу в соответствии с установкой SortOrder, и порядок остальных ячеек совершенно не изменяется.

Ниже приведены образцовые файлы, которые можно загрузить для тестирования этой функции:

sampleBackGroundFile.xlsx

outputsampleBackGroundFile.xlsx

Образец кода

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// Load the Excel file.
Workbook wb = new Workbook(srcDir + "sampleInlineCharts.xlsx");
// Access the sheet
Worksheet ws = wb.getWorksheets().get(0);
// Set the print area.
ws.getPageSetup().setPrintArea("D2:M20");
// Initialize HtmlSaveOptions
HtmlSaveOptions options = new HtmlSaveOptions();
// Set flag to export print area only
options.setExportPrintAreaOnly(true);
//Save to HTML format
wb.save(outDir + "outputInlineCharts.html",options);

Продвинутые темы