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

来源:互联网 发布:java实体类 编辑:程序博客网 时间:2024/06/05 02:24

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


1 0
原创粉丝点击