加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用OPEN XML SDK 读取EXCEL中的超链接Hyperlink

发布时间:2020-12-15 22:45:20 所属栏目:百科 来源:网络整理
导读:使用OPEN XML SDK 读取EXCEL中的超链接Hyperlink 原理 先创建一个包含所有EXCEL单元格中超链接Hyperlink数据的表,再定位单元格通过列头(如A1,B1)获取超链接信息。本文仅重着于如何读取EXCEL中的超链接Hyperlink信息,不设计OPEN XML SDK讲解,如果需要请

使用OPEN XML SDK 读取EXCEL中的超链接Hyperlink


原理


先创建一个包含所有EXCEL单元格中超链接Hyperlink数据的表,再定位单元格通过列头(如A1,B1)获取超链接信息。本文仅重着于如何读取EXCEL中的超链接Hyperlink信息,不设计OPEN XML SDK讲解,如果需要请参考:
  1. 使用Open XML SDK读取Excel

代码


using (SpreadsheetDocument myDoc = SpreadsheetDocument.Open(stream,false))
            {
                WorkbookPart workbookPart = myDoc.WorkbookPart;
                foreach (var worksheetPart in workbookPart.WorksheetParts)
                {
                    //所有超链接hyperlink数据表
                    var hyperlinks = worksheetPart.RootElement.Descendants<Hyperlinks>().First().Cast<Hyperlink>();
                    var sheet = worksheetPart.Worksheet.Elements<SheetData>().First();

                    foreach (Row r in sheet.Elements<Row>())
                    {
                        var cell = (Cell)r.ElementAtOrDefault(1);

                        //举例获取一个单元格
                        cell = (Cell)r.ElementAt(1);
                        //通过单元格列头信息获取超链接
                        var hyperlink = hyperlinks.SingleOrDefault(i => i.Reference.Value == cell.CellReference.Value);
                        
                        if (hyperlink != null)
                        {
                            var hyperlinksRelation = worksheetPart.HyperlinkRelationships.SingleOrDefault(i => i.Id == hyperlink.Id);
                            if (hyperlinksRelation != null)
                            {
                                //这是最终我们需要的超链接
                                var url = hyperlinksRelation.Uri.ToString();
                            }
                        }
                    }
                }
            }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读