# Sort Data in Excel

The following example shows how you can use GemBox.Spreadsheet to sort values in a specific cell range of a worksheet, in C# and VB.NET.

``````using GemBox.Spreadsheet;
using System;

class Program
{
static void Main()
{
// If using the Professional version, put your serial key below.

var workbook = new ExcelFile();

var random = new Random();

worksheet.Cells[0, 0].Value = "Sorted numbers";
for (int i = 1; i < 10; i++)
worksheet.Cells[i, 0].SetValue(random.Next(1, 100));

worksheet.Cells.GetSubrangeAbsolute(1, 0, 10, 0).Sort(false).By(0).Apply();

worksheet.Cells[0, 2].Value = "Sorted strings";
worksheet.Cells[1, 2].Value = "John";
worksheet.Cells[2, 2].Value = "Jennifer";
worksheet.Cells[3, 2].Value = "Toby";
worksheet.Cells[4, 2].Value = "Chloe";

worksheet.Cells.GetSubrangeAbsolute(1, 2, 4, 2).Sort(false).By(0).Apply();

worksheet.Cells[0, 4].Value = "Sorted by column E and after that by column F";
for (int i = 1; i < 10; i++)
{
worksheet.Cells[i, 4].SetValue(random.Next(1, 4));
worksheet.Cells[i, 5].SetValue(random.Next(0, 10));
}

// Sort by column E ascending and then by column F descending.
// These sort settings will be saved to output XLSX file because they are active (parameter value is true).
worksheet.Cells.GetSubrangeAbsolute(1, 4, 10, 5).Sort(true).By(0).By(1, true).Apply();

workbook.Save("Sorting.%OutputFileType%");
}
}
``````
``````Imports GemBox.Spreadsheet
Imports System

Module Program

Sub Main()

' If using the Professional version, put your serial key below.

Dim workbook As New ExcelFile()

Dim random As New Random()

worksheet.Cells(0, 0).Value = "Sorted numbers"
For i = 1 To 10 Step 1
worksheet.Cells(i, 0).SetValue(random.Next(1, 100))
Next

worksheet.Cells.GetSubrangeAbsolute(1, 0, 10, 0).Sort(False).By(0).Apply()

worksheet.Cells(0, 2).Value = "Sorted strings"
worksheet.Cells(1, 2).Value = "John"
worksheet.Cells(2, 2).Value = "Jennifer"
worksheet.Cells(3, 2).Value = "Toby"
worksheet.Cells(4, 2).Value = "Chloe"

worksheet.Cells.GetSubrangeAbsolute(1, 2, 4, 2).Sort(False).By(0).Apply()

worksheet.Cells(0, 4).Value = "Sorted by column E and after that by column F"
For i = 1 To 10 Step 1
worksheet.Cells(i, 4).SetValue(random.Next(1, 4))
worksheet.Cells(i, 5).SetValue(random.Next(0, 10))
Next

' Sort by column E ascending and then by column F descending.
' These sort settings will be saved to output XLSX file because they are active (parameter value is True).
worksheet.Cells.GetSubrangeAbsolute(1, 4, 10, 5).Sort(True).By(0).By(1, True).Apply()

workbook.Save("Sorting.%OutputFileType%")
End Sub
End Module
``````

Note that sorted cells are written to all output file formats, but the active `Sort` is written only to XLSX file format.