如何使用C# MS Interop从Excel单元格提取完整URL地址
解决Excel Interop提取带锚点超链接不完整的问题
问题本质:Excel对象模型中,
Hyperlink.Address仅存储#锚点之前的基础URL,锚点后的路径内容会单独存放在Hyperlink.SubAddress属性中,你只读取Address自然拿不到完整链接。修复代码:将
Address和SubAddress拼接即可,注意判断SubAddress是否为空,避免无效拼接:
var targetHyperlink = excelRange.Cells[3, 2].Hyperlinks[1]; string fullLink = targetHyperlink.Address; if (!string.IsNullOrEmpty(targetHyperlink.SubAddress)) { fullLink += "#" + targetHyperlink.SubAddress; } Console.Write(fullLink);
- 额外提示:多数情况下Excel会自动将锚点后的内容存入
SubAddress且不带#,直接拼接即可;如果遇到SubAddress本身带#的特殊情况,可添加判断去重。
内容的提问来源于stack exchange,提问作者David Palos
相关产品推荐
相关产品推荐

