超链接是 Excel 中的重要元素,它允许用户引用外部数据源、实现工作表间导航或为特定单元格附加扩展信息。在实际数据管理场景中,常需对Excel超链接进行系统化操作:如批量提取超链接进行数据分析、更新失效链接以保障数据准确性、移除损坏链接提升文档可用性等。本文将介绍如何使用 Spire.XLS for .NET 通过 C# 代码实现读取、修改和删除 Excel 中的超链接。
安装 .NET Excel 库
在开始之前,需要在项目中安装 Spire.XLS for .NET 库:
一、使用 NuGet 包管理器(推荐)
- 在 Visual Studio 中打开你的项目
- 右键点击项目 → 选择 “管理 NuGet 程序包”
- 搜索 “Spire.XLS” 并安装最新版本。
二、手动下载 DLL(适合离线环境)
- 下载 Spire.XLS 包,然后解压下载的 ZIP 文件
- 在 Visual Studio 中打开项目
- 右键点击项目 → 选择 “添加” → “引用”→ “浏览”
- 选择 Spire.Xls.dll 文件并点击 “确定”
C# 读取 Excel 中的超链接
如果要将数据从 Excel 工作簿迁移到其他系统(如数据库),并且需要保留与数据关联的超链接,则需要事先从 Excel 文件中提取超链接。
以下步骤演示了如何从 Excel 工作表中提取超链接:
- 初始化 Workbook 类的实例。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
- 使用 Workbook.Worksheets[int index] 属性获取特定工作表。
- 使用 Worksheet.Hyperlinks 属性获取工作表中所有超链接的集合。
- 创建 StringBuilder 对象以存储提取的超链接信息。
- 遍历超链接集合中的超链接。
- 使用 XlsHyperlink.Address 和 XlsHyperlink.Type 属性获取每个超链接的地址和类型。
- 将地址和类型添加到 StringBuilder 实例中,然后再写入TXT文本文件。
using Spire.Xls;
using Spire.Xls.Collections;
using Spire.Xls.Core.Spreadsheet;
using System.IO;
using System.Text;
namespace ExtractHyperlinks
{
internal class Program
{
static void Main(string[] args)
{
// 初始化Workbook类的实例
Workbook workbook = new Workbook();
// 加载Excel文件
workbook.LoadFromFile("Excel超链接.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 获取工作表中所有超链接的集合
HyperLinksCollection hyperLinks = sheet.HyperLinks;
// 初始化StringBuilder类的实例
StringBuilder sb = new StringBuilder();
// 遍历集合中的超链接
foreach (XlsHyperLink hyperlink in hyperLinks)
{
// 获取超链接的地址
string address = hyperlink.Address;
// 获取超链接的类型
HyperLinkType type = hyperlink.Type;
// 将超链接的地址和类型追加到StringBuilder实例
sb.AppendLine("链接地址: " + address);
sb.AppendLine("链接类型: " + type.ToString());
sb.AppendLine();
}
// 将StringBuilder实例的内容写入文本文件
File.WriteAllText("读取超链接.txt", sb.ToString());
workbook.Dispose();
}
}
}
C# 修改 Excel 中的超链接
如果在创建超链接时不小心链接到了错误的资源或输入了错误的 URL,则可能需要修改超链接以纠正错误。
以下步骤演示了如何编辑 Excel 工作表中的现有超链接:
- 初始化 Workbook 类的实例。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
- 使用 Workbook.Worksheets[int index] 属性获取特定工作表。
- 通过 Worksheet.Hyperlinks[] 属性获取工作表中所有超链接的集合。
- 通过索引获取集合中的某个指定超链接。
- 通过 XlsHyperlink.TextToDisplay 和 XlsHyperlink.Address 属性修改超链接的显示文本和URL地址。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
using Spire.Xls;
using Spire.Xls.Collections;
using Spire.Xls.Core.Spreadsheet;
namespace ModifyHyperlinks
{
internal class Program
{
static void Main(string[] args)
{
// 初始化Workbook类的实例
Workbook workbook = new Workbook();
// 加载Excel文件
workbook.LoadFromFile("Excel超链接.xlsx");
// 获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
// 获取工作表中超链接的集合
HyperLinksCollection links = sheet.HyperLinks;
// 获取集合中第二个超链接
XlsHyperLink hyperLink = links[1];
// 修改超链接的显示文本和地址
hyperLink.TextToDisplay = "Spire.XLS 产品介绍";
hyperLink.Address = "https://www.e-iceblue.cn/Introduce/Spire-XLS-NET.html";
// 保持结果文件
workbook.SaveToFile("修改超链接.xlsx", ExcelVersion.Version2013);
workbook.Dispose();
}
}
}
C# 删除Excel中的超链接
删除不相关的超链接可以帮助使工作表更整洁、更专业。
以下步骤演示了如何删除 Excel 工作表中的指定超链接:
- 初始化 Workbook 类的实例。
- 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
- 通过 Workbook.Worksheets[int index] 属性获取特定工作表。
- 使用 Worksheet.Hyperlinks.RemoveAt(int index) 方法从工作表中删除特定的超链接(保留显示文本)。或者直接使用 Worksheet.Range[].ClearAll() 方法删除所有内容。
- 使用 Workbook.SaveToFile() 方法保存结果文件。
using Spire.Xls;
namespace RemoveHyperlinks
{
internal class Program
{
static void Main(string[] args)
{
// 初始化Workbook类的实例
Workbook workbook = new Workbook();
// 加载Excel文件
workbook.LoadFromFile("Excel超链接.xlsx");
// 获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
// 移除超链接但保留显示文本
sheet.HyperLinks.RemoveAt(1);
// 移除单元格中所有内容
sheet.Range["A5"].ClearAll();
// 保存结果文件
workbook.SaveToFile("删除超链接.xlsx", ExcelVersion.Version2013);
workbook.Dispose();
}
}
}
结论
通过 Spire.XLS for .NET 的强大 API,开发者可便捷处理 Excel中的超链接:
- 提取:获取所有超链接地址与类型(如 URL、工作簿内链接)。
- 修改:更新链接地址或显示文本。
- 删除:按索引移除指定超链接,保留或清空单元格内容。
无论是批量数据审计、报表模板更新还是错误链接修正,本文提供的代码示例和操作指南都能有效提升开发效率。此外还可配合其他Excel操作功能,实现更复杂的 Excel 文档处理场景。
申请临时 License
如您需要去除生成文档中的评估提示或解除功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。