Data Sortering
Data sortering är en av Microsoft Excels många användbara funktioner. Den gör det möjligt för användare att ordna data för att göra det enklare att skanna.
Aspose.Cells tillåter dig att sortera kalkylbladsdata i alfabetisk eller numerisk ordning. Det fungerar på samma sätt som Microsoft Excel gör för att sortera data.
Sortering av data i Microsoft Excel
För att sortera data i Microsoft Excel:
- Välj Data från Sortera-menyn. Sorteringsdialogrutan visas.
- Välj ett sorteringsalternativ.
I allmänhet utförs sortering på en lista - definierad som en sammanhängande grupp data där data visas i kolumner.
Sorteringsdialogrutan i Microsoft Excel
Sortera data med Aspose.Cells
Aspose.Cells tillhandahåller DataSorter-klassen som används för att sortera data i stigande eller fallande ordning. Klassen har några viktiga medlemmar, till exempel metoder som setKey1…setKey2 och setOrder1…setOrder2. Dessa medlemmar används för att definiera sorterade nycklar och ange sorteringsordning för nyckeln.
Du måste definiera nycklar och ange sorteringsordningen innan du implementerar datasortering. Klassen tillhandahåller metoden sort som används för att utföra datasortering baserat på celldata i ett arbetsblad.
Metoden sort accepterar följande parametrar:
- Cells, arbetsbladets celler.
- CellArea, cellområdet. Definiera cellområdet innan du tillämpar datasortering.
Detta exempel visar hur man sorterar data med hjälp av Aspose.Cells API. Exemplet använder en mallfil “Book1.xls” och sorterar data för dataraden (A1:B14) på det första arket:
Detta exempel använder mallfilen “Book1.xls” skapad i Microsoft Excel.
Mall för Excel-fil komplett med data
Efter att koden nedan har körts är data sorterad korrekt som du kan se från den utdata Excel-filen.
Utdata Excel-fil efter sorteringsdata
// 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"); |
Sortera data med bakgrundsfärg
Excel tillhandahåller funktionen att sortera data baserat på bakgrundsfärg. Samma funktion tillhandahålls med hjälp av Aspose.Cells med DataSorter, där SortOnType.CELL_COLOR kan användas i addKey() för att sortera data baserat på bakgrundsfärg. Alla celler som innehåller angiven färg i addKey()-funktionen placeras överst eller längst ned enligt SortOrder-inställningen och ordningen för resten av cellerna ändras inte alls.
Följande är provfiler som kan laddas ned för att testa denna funktion:
outputsampleBackGroundFile.xlsx
Exempelkod
// 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); |