Data Sorting
Sorting Data in Microsoft Excel
To sort data in Microsoft Excel:
- Select Data from the Sort menu. The Sort dialog will be displayed.
- Select a sorting option.
Generally, sorting is performed on a list - defined as a contiguous group of data where the data is displayed in columns.
Sorting Data with Aspose.Cells for Python Excel Library
Aspose.Cells for for Python via .NET provides the DataSorter class used to sort data in ascending or descending order. The class has some important members, for example, properties like Key1 … Key3 and Order1 … Order3. These members are used to define sorted keys and specify the key sort order.
You have to define keys and set the sort order before implementing data sorting. The class provides the sort method used to perform data sorting based on the cell data in a worksheet.
The sort method accepts the following parameters:
- aspose.cells.Cells, the cells for the underlying worksheet.
- aspose.cells.CellArea, the range of cells. Define the cell area before applying data sorting.
This example uses the template file “Book1.xls” created in Microsoft Excel. After executing the code below, data is sorted appropriately.
from aspose.cells import CellArea, SortOrder, Workbook | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# The path to the documents directory. | |
dataDir = RunExamples.GetDataDir(".") | |
# Instantiate a new Workbook object. | |
# Load a template file. | |
workbook = Workbook(dataDir + "book1.xls") | |
# Get the workbook datasorter object. | |
sorter = workbook.data_sorter | |
# Set the first order for datasorter object. | |
sorter.order1 = SortOrder.DESCENDING | |
# Define the first key. | |
sorter.key1 = 0 | |
# Set the second order for datasorter object. | |
sorter.order2 = SortOrder.ASCENDING | |
# Define the second key. | |
sorter.key2 = 1 | |
# Create a cells area (range). | |
ca = CellArea() | |
# Specify the start row index. | |
ca.start_row = 0 | |
# Specify the start column index. | |
ca.start_column = 0 | |
# Specify the last row index. | |
ca.end_row = 13 | |
# Specify the last column index. | |
ca.end_column = 1 | |
# Sort data in the specified data range (A1:B14) | |
sorter.sort(workbook.worksheets[0].cells, ca) | |
# Save the excel file. | |
workbook.save(dataDir + "output.out.xls") |
Sorting Data with Background Color Using Aspose.Cells for Python Excel Library
Excel provides features to sort data based on the background color. The same feature is provided using Aspose.Cells for for Python via .NET using DataSorter where SortOnType. CellColor can be used in add_key() to sort data based on the background color. All the cells which contain specified color in the add_key(), function are placed on top or bottom according to the SortOrder setting and order of the rest of the cells is not changed at all.
Following are the sample files which can be downloaded for testing this feature:
outputsampleBackGroundFile.xlsx
from aspose.cells import CellArea, SortOnType, SortOrder, Workbook | |
from aspose.pydrawing import Color | |
# For complete examples and data files, please go to https:# github.com/aspose-cells/Aspose.Cells-for-.NET | |
# Create a workbook object and load template file | |
workbook = Workbook(sourceDir + "CellsNet46500.xlsx") | |
# Instantiate data sorter object | |
sorter = workbook.data_sorter | |
# Add key for second column for red color | |
sorter.add_key(1, SortOnType.CELL_COLOR, SortOrder.DESCENDING, Color.red) | |
# Sort the data based on the key | |
sorter.sort(workbook.worksheets[0].cells, CellArea.create_cell_area("A2", "C6")) | |
# Save the output file | |
workbook.save(outputDir + "outputSortData_CustomSortList.xlsx") |