如何在 C# 中使用 Excel 创建超链接

如何使用 C# 在 Excel 中创建超链接

This article was translated from English: Does it need improvement?
Translated
View the article in English

Excel 超链接提供指向工作簿内位置、不同文件、网页或电子邮件地址的可点击引用。 它们增强了导航功能,使用户能够快速访问相关信息和外部资源。 超链接可以创建交互式且用户友好的电子表格,方便用户轻松访问其他数据或外部内容。

IronXL 无需在 .NET C# 中使用 Interop,即可创建 URL 超链接、从本地和 FTP(文件传输协议)文件系统打开外部文件、电子邮件地址、单元格地址和已定义名称单元格。

快速入门:只需几步即可使用 IronXL 添加超链接

本示例展示了使用 IronXL 向 Excel 单元格添加网页超链接是多么容易。 只需几行代码——创建工作簿、设置单元格值、分配超链接并保存——即可在电子表格中创建一个交互式链接。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronXL

    PM > Install-Package IronXL.Excel

  2. 复制并运行这段代码。

    IronXL.WorkBook workbook = IronXL.WorkBook.Create(IronXL.ExcelFileFormat.XLSX);
    workbook.DefaultWorkSheet.GetCellAt(0, 0).Value = "Visit IronXL Docs";
    workbook.DefaultWorkSheet.GetCellAt(0, 0).Hyperlink = "https://ironsoftware.com";
    workbook.SaveAs("hyperlink_quick.xlsx");
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronXL,免费试用!
    arrow pointer

开始使用 IronXL

今天在您的项目中使用 IronXL,免费试用。

第一步:
green arrow pointer


创建链接超链接示例

Cell类中存在Hyperlink属性。 worksheet["A1"]代码返回一个Range对象,您可以使用First方法访问区域中的第一个单元格。

或者,您可以使用GetCellAt方法直接访问单元格,从而直接访问Hyperlink属性。

让我们来看一个创建链接超链接的例子。 HTTP 和 HTTPS 协议均受支持。

使用GetCellAt方法选择未修改的单元格会抛出System.NullReferenceException 异常:"对象引用未设置为对象的实例。"

: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

示范

Link Hyperlink

创建跨工作表的超链接示例

要创建指向同一工作表中某个单元格的超链接,只需使用单元格的地址,例如 Z20。但是,要创建跨工作表的超链接,可以使用地址约定" worksheetName!address "。 例如,"Sheet2!A1"。

定义名称单元格的范围可以是工作簿(全局)或工作表。 如果要创建指向同一工作表中已定义名称或工作簿范围内已定义名称的超链接,可以直接指定名称。 要为指定名称且作用域为不同工作表的超链接创建超链接,请按上述方式指定工作表名称。 例如,"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

示范

Hyperlink Across Worksheet

创建其他类型的超链接示例

除了前面提到的超链接类型外,IronXL 还支持创建 FTP、文件和电子邮件超链接。

  • FTP:以ftp://开头。
  • 文件:指定以file:///开头的绝对路径
  • 电子邮件:以mailto:

@@--括号-i-OPEN--@@FTP 和文件超链接都需要使用绝对路径。@@--括号-CLOSE--@@

: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

示范

Other Types of Hyperlinks

删除超链接

要删除超链接,只需调用RemoveHyperlink方法即可。 可以从单元格对象访问此方法。

: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

常见问题解答

如何使用C#在Excel单元格中添加超链接?

您可以通过将单元格的Hyperlink属性设置为包含所需链接的Uri对象来使用IronXL向Excel单元格添加超链接。这使您能够创建指向网站、电子邮件和文件的可点击引用。

使用.NET库可以在Excel中创建哪些类型的超链接?

使用IronXL,您可以创建到HTTP和HTTPS URL、FTP链接、本地文件路径、电子邮件地址,甚至是同一或不同工作表内的单元格地址的超链接。

如何使用C#创建指向不同工作表单元格的超链接?

要使用IronXL创建指向不同工作表单元格的超链接,可以使用地址格式worksheetName!cellAddress。例如,要链接到Sheet2上的单元格A1,请使用Sheet2!A1

我可以以编程方式从Excel单元格中删除超链接吗?

可以,您可以通过在相应的单元格对象上调用RemoveHyperlink方法来使用IronXL从Excel单元格中删除超链接。

使用IronXL在Excel中设置超链接相较于传统方法有什么优势?

使用IronXL在Excel中设置超链接无需Excel Interop,在.NET应用程序中使过程更快更高效,并且不依赖于服务器上安装Excel。

如何使用C#在Excel文件中创建电子邮件超链接?

要使用IronXL在Excel文件中创建电子邮件超链接,将Hyperlink属性设置为以'mailto:'方案开头的Uri对象,后跟电子邮件地址。

是否可以使用.NET库创建FTP和文件超链接?

是的,IronXL允许您通过以'ftp://'开头和以'file:///'开头的绝对路径创建FTP和文件超链接。

如何使用C#在Excel中创建指向定义的名称单元格的超链接?

您可以通过直接指定定义名称(如果它具有工作簿范围)或包括工作表名称作为 worksheetName!definedName(如果它具有工作表范围)来使用 IronXL 创建指向定义名称单元格的超链接。

Chaknith Bin
软件工程师
Chaknith 在 IronXL 和 IronBarcode 工作。他在 C# 和 .NET 方面有着深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的见解有助于更好的产品、文档和整体体验。
准备开始了吗?
Nuget 下载 1,738,553 | Version: 2025.11 刚刚发布