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

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

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

时间: 2024-10-14 04:30:11

使用OPEN XML SDK 读取EXCEL中的超链接Hyperlink的相关文章

robotframework 读取excel中的数据转换:

robotframework 读取excel中的数据转换 Convert To Integer choose file 上传文件关键字

Python读取excel中的图片

Python读取excel中的图片文件,并转成base64 import sys import os import xlrd import zipfile import base64 class ExcelImgRead(object): def change_file_name(self, file_path, old_name, new_type = '.zip'): """ 修改指定目录下的文件类型名 :param file_path: :param old: :par

读取Excel中的数据到DataSet

读取Excel中的数据到DataSet 1.引用命名空间 using System.Data.OleDb; 2.输入Excel文件,输出DataSet public DataSet ExecleDs()    {        string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\data-for-source-apportionment\\PM-SO2-NOx-CO-O3-201311-20140324.xlsx

C# 读取Excel中的数据

#region 读取Excel中的数据 /// <summary> /// 读取Excel中的数据 /// </summary> /// <param name="excelFile">Excel文件名及路径,EG:C:\Users\JK\Desktop\导入测试.xls</param> /// <returns>Excel中的数据</returns> private DataTable GetTable(stri

读取Excel中的内容需要的jar

读取Excel中的内容需要的jargeronimo-stax-api_1.0_spec-1.0.jarpoi-ooxml-3.7-20101029.jarpoi-3.7-20101029.jarpoi-ooxml-schemas-3.7-20101029.jarxmlbeans-2.30.jar commons-fileupload.jarcommons-io.jar

接口测试中读取excel中的请求数据含有中文问题,UnicodeEncodeError: &#39;latin-1&#39; codec can&#39;t encode character &#39;\u5c0f&#39; in position

错误信息:UnicodeEncodeError: 'latin-1' codec can't encode character '\u5c0f' in position 31: Body ('小') is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8的错误 原因:从excel中读取你的接口请求数据时带有中文时在发送求情时会出现上述错误.只需要将请求数据转化为bytes类型即可

如何将XML文件导入Excel中

如下图所示为一个规范的XML文件,在Excel中可以将规范的XML文件导入到Excel成为规范的表格.具体有如下几种方法: 工具/原料 Excel 方法/步骤 单击“数据”选项卡下的“获取外部数据”工作组中的“自其他来源”下的“来自XML数据导入”,如下图所示   如下图所示,在弹出的“获取数据源”的对话框中找到要导入的XML文件,后单击“打开”按钮.   单击“打开”按钮后将弹出如下图所示的提示,直接单击“确定”按钮.在弹出的“导入数据”对话框中可以选择是放置在“现有工作表”还是“新的工作表”

用黏贴板读取excel中的数据以及用R生成人名

本人尚在超级菜鸟级别,中间有些代码写的很low,请不要见笑! 1.今天先跟大家分享一个小技巧,用黏贴板将excel中的数据读进R 首先选中要读入R的数据 如图,上面是我分析的病人相关资料,Ctrol+C选中目标区域,接着在R运行以下代码: excel_clinic_data <- read.table("clipboard",sep="\t",header = T) 运行后就可以看到我们想要读到R中的数据已经读进来了,超级方便. 注意:经本人试验,好像不支持不

js读取excel中日期格式转换问题

在使用js-xlsx插件来读取excel时,会将2018/10/16这种数据自动装换成48264.12584511. 所以需要自己手动再转换回来 // excel读取2018/01/01这种时间格式是会将它装换成数字类似于46254.1545151415 numb是传过来的整数数字,format是之间间隔的符号 formatDate(numb, format) { const time = new Date((numb - 1) * 24 * 3600000 + 1) time.setYear(