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

Posted xfgnongmin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用OPEN XML SDK 读取EXCEL中的超链接Hyperlink相关的知识,希望对你有一定的参考价值。

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


原理


先创建一个包括全部EXCEL单元格中超链接Hyperlink数据的表,再定位单元格通过列头(如A1,B1)获取超链接信息。本文仅重着于怎样读取EXCEL中的超链接Hyperlink信息,不设计OPEN XML SDK解说,假设须要请參考:

代码


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();
                            }
                        }
                    }
                }
            }


以上是关于使用OPEN XML SDK 读取EXCEL中的超链接Hyperlink的主要内容,如果未能解决你的问题,请参考以下文章

Open XML SDK 2.0 - 如何更新电子表格中的单元格?

Office Open XML SDK 换词

删除 20,000+ 行 Excel 文件中的第一行时打开 XML SDK v2.0 性能问题

跳过第一个单元格和最后一个单元格 - 使用 Open XML 从 Excel 到 C# 中的 DataTable

Open XML格式化Excel数值

如何读取xml文件导出为excel文件