Sort Excel Ranges in C#

Arranging data in alphabetical or value order makes human analysis of data feasible in Microsoft Excel. IronXL makes sorting Excel Columns, Rows, and Ranges extremely simple in C# and VB.NET.

Use the SortAscending or SortDescending methods on the selected range or column to apply sorting in the appropriate order. The SortByColumn method, however, requires two parameters: The first input is the column intended to be sorted and the second input is the sorting order.

Here is an example of how you can sort data using C#:

using IronXL;

class ExcelSorter
{
    static void Main(string[] args)
    {
        // Load the Excel file
        WorkBook workbook = WorkBook.Load("example.xlsx");

        // Select the first worksheet
        WorkSheet sheet = workbook.WorkSheets.First();

        // To sort the entire sheet in ascending order based on the first column
        sheet.SortAscending(sheet["A"]);

        // Alternatively, sort a specific range in descending order
        sheet.SortDescending(sheet["A2:A10"]);

        // Using SortByColumn method to sort by specific column in ascending order
        sheet.SortByColumn("B", ExcelSortOrder.Ascending); 

        // Save the modified workbook
        workbook.SaveAs("sorted_example.xlsx");
    }
}
using IronXL;

class ExcelSorter
{
    static void Main(string[] args)
    {
        // Load the Excel file
        WorkBook workbook = WorkBook.Load("example.xlsx");

        // Select the first worksheet
        WorkSheet sheet = workbook.WorkSheets.First();

        // To sort the entire sheet in ascending order based on the first column
        sheet.SortAscending(sheet["A"]);

        // Alternatively, sort a specific range in descending order
        sheet.SortDescending(sheet["A2:A10"]);

        // Using SortByColumn method to sort by specific column in ascending order
        sheet.SortByColumn("B", ExcelSortOrder.Ascending); 

        // Save the modified workbook
        workbook.SaveAs("sorted_example.xlsx");
    }
}
Imports IronXL

Friend Class ExcelSorter
	Shared Sub Main(ByVal args() As String)
		' Load the Excel file
		Dim workbook As WorkBook = WorkBook.Load("example.xlsx")

		' Select the first worksheet
		Dim sheet As WorkSheet = workbook.WorkSheets.First()

		' To sort the entire sheet in ascending order based on the first column
		sheet.SortAscending(sheet("A"))

		' Alternatively, sort a specific range in descending order
		sheet.SortDescending(sheet("A2:A10"))

		' Using SortByColumn method to sort by specific column in ascending order
		sheet.SortByColumn("B", ExcelSortOrder.Ascending)

		' Save the modified workbook
		workbook.SaveAs("sorted_example.xlsx")
	End Sub
End Class
$vbLabelText   $csharpLabel

Explanation:

  • Loading the workbook: First, we load an existing Excel file using WorkBook.Load("example.xlsx").
  • Selecting a worksheet: The line WorkSheet sheet = workbook.WorkSheets.First() selects the first worksheet in the Excel file.
  • Sorting the entire sheet: sheet.SortAscending(sheet["A"]); sorts data in the entire sheet based on column A in ascending order.
  • Sorting a specific range: sheet.SortDescending(sheet["A2:A10"]); sorts data within the range A2 to A10 in descending order.
  • Sorting by column: The SortByColumn method sorts data by a specific column, allowing you to specify the sort order (ascending or descending). In this example, we sort column B in ascending order.
  • Saving the workbook: Lastly, the modified workbook is saved using workbook.SaveAs("sorted_example.xlsx").

For an example in VB.NET, the syntax and comments can be similarly structured to maintain clarity and functionality.