How to Create Hyperlink

Excel hyperlinks provide clickable references to locations within the workbook, different files, web pages, or email addresses. They enhance navigation, allowing quick access to related information and external resources. Hyperlinks create interactive and user-friendly spreadsheets, facilitating easy access to additional data or external content.

IronXL enables the creation of hyperlinks for URLs, opening external files from both local and FTP (File Transfer Protocol) file systems, email addresses, cell addresses, and defined name cells without the use of Interop in .NET C#.

Get started with IronXL

Start using IronXL in your project today with a free trial.

First Step:
green arrow pointer


The Hyperlink property exists in the Cell class. The worksheet["A1"] code returns a Range object, you can use the First method to access the first cell in the range.

Alternatively, you can directly access the cell using the GetCellAt method, allowing you to access the Hyperlink property directly.

Let's explore an example of creating link hyperlinks. Both HTTP and HTTPS protocols are supported.

WarningUsing the GetCellAt method to select an unmodified cell will throw System.NullReferenceException: 'Object reference not set to an instance of an object.'

:path=/static-assets/excel/content-code-examples/how-to/hyperlinks-set-link-hyperlink.cs
using IronXL;

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Modify the cell's property
workSheet["A1"].Value = "Link to ironpdf.com";

// Set hyperlink at A1 to https://ironpdf.com/
workSheet.GetCellAt(0, 0).Hyperlink = "https://ironpdf.com/";

workBook.SaveAs("setLinkHyperlink.xlsx");
Imports IronXL

Private workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Modify the cell's property
Private workSheet("A1").Value = "Link to ironpdf.com"

' Set hyperlink at A1 to https://ironpdf.com/
workSheet.GetCellAt(0, 0).Hyperlink = "https://ironpdf.com/"

workBook.SaveAs("setLinkHyperlink.xlsx")
$vbLabelText   $csharpLabel

Demonstration

Link Hyperlink

To create a hyperlink to a cell within the same worksheet, simply use the cell's address, such as Z20. However, to create a hyperlink across worksheets, you can use the address convention "worksheetName!address". For example, "Sheet2!A1".

Define name cells can have either workbook(global) or worksheet scope. If you want to create a hyperlink to a defined name within the same worksheet or a defined name with workbook scope, you can specify the name directly. To create a hyperlink for a defined name with worksheet scope on a different worksheet, specify the worksheet name as mentioned above. For example, "Sheet2!Iron".

:path=/static-assets/excel/content-code-examples/how-to/hyperlinks-set-hyperlink-across-worksheet.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet1 = workBook.CreateWorkSheet("Sheet1");
WorkSheet workSheet2 = workBook.CreateWorkSheet("Sheet2");

// Create workbook(global) define name
workSheet1["D5"].SaveAsNamedRange("Iron", true);

// Create worksheet define name
workSheet2["D10"].SaveAsNamedRange("Hello", false);

// --== Within the same worksheet ==--
// Set hyperlink to cell Z20
workSheet1["A1"].Value = "Z20";
workSheet1["A1"].First().Hyperlink = "Z20";

// Set hyperlink to define name "Iron"
workSheet1["A2"].Value = "Iron";
workSheet1["A2"].First().Hyperlink = "Iron";

// --== Across worksheet ==--
// Set hyperlink to cell A1 of Sheet2
workSheet1["A3"].Value = "A1 of Sheet2";
workSheet1["A3"].First().Hyperlink = "Sheet2!A1";

// Set hyperlink to define name "Hello" of Sheet2
workSheet1["A4"].Value = "Define name Hello of Sheet2";
workSheet1["A4"].First().Hyperlink = "Sheet2!Hello";

workBook.SaveAs("setHyperlinkAcrossWorksheet.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Demonstration

Hyperlink Across Worksheet

In addition to the hyperlink types mentioned earlier, IronXL also supports the creation of FTP, file, and email hyperlinks.

  • FTP: Starting with ftp://
  • File: Specify an absolute path starting with file:///
  • Email: Starting with mailto:

Please noteBoth FTP and File hyperlinks require the use of absolute paths.

:path=/static-assets/excel/content-code-examples/how-to/hyperlinks-set-other-hyperlink.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Set hyperlink to open file sample.xlsx
workSheet["A1"].Value = "Open sample.xslx";
workSheet["A1"].First().Hyperlink = "ftp://C:/Users/sample.xlsx";

// Set hyperlink to open file sample.xlsx
workSheet["A2"].Value = "Open sample.xslx";
workSheet["A2"].First().Hyperlink = "file:///C:/Users/sample.xlsx";

// Set hyperlink to email example@gmail.com
workSheet["A3"].Value = "example@gmail.com";
workSheet["A3"].First().Hyperlink = "mailto:example@gmail.com";

workBook.SaveAs("setOtherHyperlink.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Demonstration

Other Types of Hyperlinks

To remove a hyperlink, simply invoke the RemoveHyperlink method. This method can be accessed from the cell object.

:path=/static-assets/excel/content-code-examples/how-to/hyperlinks-remove-hyperlink.cs
using IronXL;
using System.Linq;

WorkBook workBook = WorkBook.Load("setLinkHyperlink.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Remove hyperlink
workSheet["A1"].First().RemoveHyperlink();

workBook.SaveAs("removeHyperlink.xlsx");
Imports IronXL
Imports System.Linq

Private workBook As WorkBook = WorkBook.Load("setLinkHyperlink.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Remove hyperlink
workSheet("A1").First().RemoveHyperlink()

workBook.SaveAs("removeHyperlink.xlsx")
$vbLabelText   $csharpLabel

Frequently Asked Questions

How can I add hyperlinks to Excel cells using C#?

You can add hyperlinks to Excel cells using IronXL by setting the Hyperlink property of a cell to a Uri object containing the desired link. This allows you to create clickable references to websites, emails, and files.

What types of hyperlinks can be created in Excel using a .NET library?

Using IronXL, you can create hyperlinks to HTTP and HTTPS URLs, FTP links, local file paths, email addresses, and even cell addresses within the same or different worksheets.

How do you create a hyperlink to a cell in a different worksheet using C#?

To create a hyperlink to a cell in a different worksheet using IronXL, you use the address format worksheetName!cellAddress. For example, to link to cell A1 on Sheet2, use Sheet2!A1.

Can I remove a hyperlink from an Excel cell programmatically?

Yes, you can remove a hyperlink from an Excel cell using IronXL by invoking the RemoveHyperlink method on the respective cell object.

What is the advantage of using IronXL for setting hyperlinks in Excel over traditional methods?

Using IronXL to set hyperlinks in Excel eliminates the need for Excel Interop, making the process faster and more efficient within .NET applications, without relying on Excel being installed on the server.

How can I create an email hyperlink in an Excel file using C#?

To create an email hyperlink in an Excel file using IronXL, set the Hyperlink property to a Uri object that begins with the 'mailto:' scheme, followed by the email address.

Is it possible to create FTP and file hyperlinks using a .NET library?

Yes, IronXL allows you to create FTP hyperlinks by starting with 'ftp://' and file hyperlinks using an absolute path starting with 'file:///'.

How can I create a hyperlink to a defined name cell in Excel using C#?

You can create a hyperlink to a defined name cell using IronXL by specifying the defined name directly if it has workbook scope, or by including the worksheet name as worksheetName!definedName if it has worksheet scope.

Chaknith Bin
Software Engineer
Chaknith works on IronXL and IronBarcode. He has deep expertise in C# and .NET, helping improve the software and support customers. His insights from user interactions contribute to better products, documentation, and overall experience.