如何在 Excel 中使用 C# 创建超链接
IronXl.Excel 使 C# 开发人员能够在 Excel 单元格中创建各种超链接,包括 URL、文件路径、电子邮件地址和单元格引用,而无需使用 Interop,从而简化了在电子表格中添加交互式导航的过程。
Excel 超链接提供指向工作簿内位置、不同文件、网页或电子邮件地址的可点击引用。 它们增强了导航功能,使用户能够快速访问相关信息和外部资源。 超链接可以创建交互式且用户友好的电子表格,方便用户轻松访问其他数据或外部内容。
IronXL 无需在 .NET C# 中使用 Interop,即可创建 URL 超链接、从本地和 FTP(文件传输协议)文件系统打开外部文件、电子邮件地址、单元格地址和已定义名称单元格。 在商业应用程序中以编程方式处理 Excel 文件时,该功能至关重要。
快速入门:仅需几步即可用IronXL添加超链接
本示例展示了使用 IronXL 向 Excel 单元格添加网页超链接是多么容易。 只需几行字--创建工作簿、设置单元格值、分配超链接并保存--您就可以在电子表格中创建一个交互式链接。 有关更全面的 Excel 操作,请浏览我们的 C# 编辑 Excel 文件指南。
-
使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronXL.Excel
PM > Install-Package IronXL.Excel -
复制并运行这段代码。
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"); -
部署到您的生产环境中进行测试
通过免费试用立即在您的项目中开始使用IronXL
最小工作流程(5 个步骤)
- 下载用于创建超链接的 C# 库。
- 加载现有的Excel文件或创建一个新的文件
- 创建到网站URL链接的超链接
- 在同一工作表内或跨工作表的单元格或定义名称创建超链接
- 使用
Hyperlink属性创建超链接以打开文件和电子邮件
我需要哪些先决条件?
在实现超链接之前,请确保您的.NET项目中安装了IronXL。 您还需要对IronXL中的选择范围和管理工作表有基本的了解。 该库支持 .NET Framework 4.6.2+ 和 .NET Core/5/6/7/8+,与大多数现代 .NET 应用程序兼容。
如何在 Excel 单元格中创建 URL 超链接?
Cell类中。 Range对象; 使用First方法来访问范围内的第一个单元格。
或者,直接使用Hyperlink属性。 在使用电子表格中的特定单元格坐标时,这种方法尤其有用。
让我们来看一个创建链接超链接的例子。 支持 HTTP 和 HTTPS 协议,使您能够链接到安全和非安全的网络资源。 创建超链接时,请考虑将其与 单元格式相结合,使其在视觉上与普通文本区分开来。
GetCellAt方法选择未修改的单元格将抛出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")
当我点击创建的超链接时会发生什么?
当您点击用 IronXl.Excel 创建的超链接时,Excel 会提示您在默认 Web 浏览器中打开链接的 URL。 单元格在添加超链接功能的同时保持其原始值,使您能够在保留描述性文本的同时启用导航功能。 无论您是在本地处理 Excel 文件还是部署到云环境,这种行为都是一致的。
如何在不同工作表之间创建超链接?
要创建指向同一工作表中单元格的超链接,请使用单元格的地址,例如Z20。 要在工作表之间创建超链接,请使用地址规范worksheetName!address。 例如,Sheet2!A1。 这种跨工作表的链接功能在使用多个数据表构建复杂的 Excel 报告时非常重要。
定义名称单元格既可以是工作簿(全局)范围,也可以是工作表范围。 要创建指向同一工作表内定义名称或工作簿范围内定义名称的超链接,请直接指定名称。 要为指定名称且作用域为不同工作表的超链接创建超链接,请按上述方式指定工作表名称。 例如,Sheet2!Iron。 了解有关使用 命名范围 实现 Excel 高级自动化的更多信息。
: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
为什么在超链接中使用命名范围?
命名范围提供了更易于维护的超链接,并能在工作表重组后继续使用。 当您重新命名或移动单元格时,指向命名范围的超链接会自动更新,从而减少 Excel 应用程序中的断开链接。 这种方法在数据位置可能发生变化的动态报告中尤为重要。
工作簿和工作表范围有什么区别?
工作簿范围(全局)命名范围可从工作簿中的任何工作表访问,而工作表范围名称只能在其特定的工作表中访问。 在创建指向命名范围的超链接时,工作簿作用域名称提供了更大的灵活性,但工作表作用域名称为特定工作表的数据提供了更好的封装。 当在复杂的 Excel 应用程序中管理多个工作表时,这种区别就变得至关重要。
如何创建文件、FTP 和电子邮件超链接?
除了前面提到的超链接类型外,IronXL 还支持创建 FTP、文件和电子邮件超链接。 这些专门的超链接类型使您的 Excel 自动化功能超越了简单的网页链接。
- FTP: 从
ftp://开头 - 链接到FTP服务器上的文件 - File: 指定一个从
file:///开头的绝对路径 - 链接到本地或网络文件 - Email: 从
mailto:开头 - 创建可点击的电子邮件地址
: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");
Imports IronXL
Imports System.Linq
Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim workSheet As 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")
何时应使用文件超链接与 FTP 超链接?
使用文件超链接(file:///)用于通过Windows文件系统可以访问的本地文件或网络共享。 FTP超链接(ftp://)非常适合链接到FTP服务器上的文件,尤其是在文档存储在专用文件服务器上的企业环境中。 使用 FTP 链接时要考虑安全问题,因为它们可能以纯文本形式传输凭据。
点击 Mailto 链接时,哪个电子邮件客户端会打开?
当用户点击 Excel 中的 mailto 链接时,他们的默认电子邮件客户端会打开一封新邮件,并将邮件地址预设为指定的电子邮件。 该翻译可与作为系统默认设置的 Outlook、Thunderbird 和基于网络的电子邮件客户端配合使用。 您可以使用标准的mailto语法:mailto:example@gmail.com?subject=Hello&body=Message,为mailto链接增强主题行和正文文本。
如何从 Excel 单元格中删除超链接?
要移除一个超链接,请调用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")
删除超链接是否会删除单元格内容?
不,删除超链接会保留单元格的值和格式。 只删除超链接功能,保留显示文本。 这样就可以在不丢失数据的情况下安全地删除超链接,这在转换电子表格文件类型或准备文件存档时尤为重要。
如何一次性删除多个超链接?
要有效删除多个超链接,可遍历单元格范围或使用 LINQ 处理包含超链接的单元格:
// Remove all hyperlinks in column A
for (int i = 1; i <= 10; i++)
{
var cell = workSheet.GetCellAt(i, 0);
if (cell != null && !string.IsNullOrEmpty(cell.Hyperlink))
{
cell.RemoveHyperlink();
}
}
// Remove all hyperlinks in column A
for (int i = 1; i <= 10; i++)
{
var cell = workSheet.GetCellAt(i, 0);
if (cell != null && !string.IsNullOrEmpty(cell.Hyperlink))
{
cell.RemoveHyperlink();
}
}
' Remove all hyperlinks in column A
For i As Integer = 1 To 10
Dim cell = workSheet.GetCellAt(i, 0)
If cell IsNot Nothing AndAlso Not String.IsNullOrEmpty(cell.Hyperlink) Then
cell.RemoveHyperlink()
End If
Next
这种方法在清理导入数据或准备电子表格以便分发时特别有用,因为在这些情况下可能不适合使用超链接。 如需了解更多高级单元格操作技术,请参阅我们的 选择和处理范围指南。
常见问题解答
如何使用 C# 在 Excel 中创建超链接?
通过访问单元格并设置其超链接属性,您可以使用 IronXL.Excel 在 Excel 中轻松创建超链接。只需加载或创建工作簿,使用 GetCellAt() 或工作表索引器获取所需的单元格,然后将 URL 字符串分配给单元格的超链接属性即可。IronXL.Excel 可自动处理所有复杂的 Excel 格式,而无需 Microsoft Interop。
Excel 单元格中可以创建哪些类型的超链接?
IronXL 支持创建各种类型的超链接,包括:外部网站的 Web URL、打开本地文件或 FTP 文件的文件路径、带有 mailto 链接的电子邮件地址、同一工作表内的单元格引用以及对定义名称单元格的引用。所有这些超链接类型都可以在 IronXL 中使用相同的超链接属性来实现。
我需要安装 Microsoft Office 才能在 Excel 文件中添加超链接吗?
不,IronXL 可独立运行,无需 Microsoft Office 或 Interop 程序集。该库包含所有必要组件,可直接在您的 .NET 应用程序中创建、读取和修改带有超链接的 Excel 文件,因此非常适合无法安装 Office 的服务器环境。
创建 Excel 超链接支持哪些 .NET Framework?
IronXL 支持广泛的 .NET Framework,包括 .NET Framework 4.6.2 及更高版本,以及 .NET Core、.NET 5、6、7 和 8+。这种广泛的兼容性确保您可以将 IronXL for .NET 的超链接功能集成到传统应用程序和现代 .NET 项目中。
我可以在现有 Excel 文件中添加超链接吗?
IronXL.Excel 允许您为新的和现有的 Excel 文件添加超链接。您可以使用 WorkBook.Load() 加载现有工作簿,访问任何单元格或区域,并添加超链接,而不会影响电子表格中的其他内容或格式。在添加新的交互式元素的同时,该库还能保留现有数据。
如何访问特定单元格以添加超链接?
IronXL 提供了多种访问单元格以添加超链接的方法。你可以使用带有行和列索引的 GetCellAt(),或者使用带有单元格地址(如 worksheet["A1"])的工作表索引器。对于范围,可使用 First 方法获取第一个单元格。该库还支持为批量超链接操作选择范围。

