Сортировка данных
Сортировка данных — одна из многих полезных функций Excel. Это позволяет пользователям упорядочивать данные, чтобы их было легче сканировать.
Aspose.Cells позволяет сортировать данные рабочего листа в алфавитном или числовом порядке. Он работает так же, как Microsoft Excel для сортировки данных.
Сортировка данных в Microsoft Excel
Чтобы отсортировать данные в Microsoft Excel:
- ВыбиратьДанные отСортировать меню. Появится диалоговое окно Сортировка.
- Выберите вариант сортировки.
Как правило, сортировка выполняется в списке, определяемом как непрерывная группа данных, где данные отображаются в столбцах.
Диалоговое окно «Сортировка» в Microsoft Excel
Сортировка данных с Aspose.Cells
Aspose.Cells обеспечиваетсортировщик данных класс, используемый для сортировки данных в порядке возрастания или убывания. В классе есть несколько важных членов, например такие методы, какsetKey1 … setKey2 иsetOrder1 … setOrder2Эти элементы используются для определения отсортированных ключей и порядка сортировки ключей.
Вы должны определить ключи и установить порядок сортировки перед реализацией сортировки данных. Класс предоставляетСортировать метод, используемый для сортировки данных на основе данных ячеек на листе.
Сортировать принимает следующие параметры:
- Cells, ячейки рабочего листа.
- CellArea, диапазон ячеек. Определите область ячейки перед применением сортировки данных.
В этом примере показано, как сортировать данные с помощью Aspose.Cells API. В примере используется файл шаблона «Book1.xls» и данные сортируются по диапазону данных (A1:B14) на первом листе:
В этом примере используется файл шаблона «Book1.xls», созданный в Microsoft Excel.
Шаблон файла Excel с данными
После выполнения приведенного ниже кода данные сортируются соответствующим образом, как видно из выходного файла 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(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 с использованиемсортировщик данных кудаСортировка по типу.CELL_COLOR можно использовать вдобавить ключ() для сортировки данных по цвету фона. Все ячейки, содержащие указанный цвет вдобавить ключ(), функция размещается сверху или снизу в соответствии с настройкой SortOrder, а порядок остальных ячеек вообще не меняется.
Ниже приведены примеры файлов, которые можно загрузить для тестирования этой функции:
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); |