数据排序
数据排序是 Microsoft Excel 的众多有用功能之一。它允许用户对数据进行排序,使其更容易浏览。
Aspose.Cells 允许您按字母顺序或数字顺序对工作表数据进行排序。它的工作方式与 Microsoft Excel 的数据排序相同。
在 Microsoft Excel 中排序数据
要在 Microsoft Excel 中排序数据:
- 从 排序 菜单中选择 数据。 显示排序对话框。
- 选择排序选项。
通常,排序是针对一个列表执行的 - 定义为一组连续的数据,数据以列显示。
Microsoft Excel 中的排序对话框
使用 Aspose.Cells 进行数据排序
Aspose.Cells 提供了用于按升序或降序对数据进行排序的 DataSorter 类。该类具有一些重要成员,例如 setKey1 … setKey2 和 setOrder1 … setOrder2。这些成员用于定义排序键和指定键排序顺序。
在执行数据排序之前,您必须定义关键字并设置排序顺序。该类提供了 sort 方法,用于根据工作表中的单元格数据执行数据排序。
sort 方法接受以下参数:
此示例显示如何使用 Aspose.Cells API 对数据进行排序。 该示例使用模板文件 “Book1.xls” 并对第一个工作表中数据范围 (A1:B14) 进行排序。
此示例使用在 Microsoft Excel 中创建的模板文件 “Book1.xls”。
带数据的模板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也提供了相同功能,可以使用DataSorter,其中SortOnType.CELL_COLOR可以在addKey()中用于根据背景颜色对数据进行排序。包含addKey()函数中指定颜色的所有单元格将根据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); |