首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用OpenXML SDK获取MS word中超链接的绝对URI?

OpenXML SDK是一个用于处理Office文档的开源库,可以用于创建、修改和解析Word文档。要获取MS Word中超链接的绝对URI,可以按照以下步骤进行操作:

  1. 导入OpenXML SDK库:首先,需要在项目中导入OpenXML SDK库。可以通过NuGet包管理器或手动下载并添加对应的DLL文件。
  2. 打开Word文档:使用OpenXML SDK打开要处理的Word文档。可以使用WordprocessingDocument.Open方法打开文档,并指定访问权限。
代码语言:txt
复制
using (WordprocessingDocument document = WordprocessingDocument.Open("path/to/word/document.docx", false))
{
    // 在这里执行后续操作
}
  1. 获取超链接:通过遍历文档中的段落和超链接关系,可以获取到所有的超链接。
代码语言:txt
复制
foreach (HyperlinkRelationship hyperlink in document.MainDocumentPart.HyperlinkRelationships)
{
    string hyperlinkId = hyperlink.Id;
    string hyperlinkUri = hyperlink.Uri.ToString();

    // 在这里处理超链接
}
  1. 获取超链接的绝对URI:通过超链接的ID,可以在文档的关系部分找到对应的关系。然后,可以使用关系的目标URI属性获取超链接的绝对URI。
代码语言:txt
复制
UriPartRelationship relationship = document.MainDocumentPart.GetPartById(hyperlinkId) as UriPartRelationship;
string absoluteUri = relationship.Uri.ToString();
  1. 完整示例代码:
代码语言:txt
复制
using (WordprocessingDocument document = WordprocessingDocument.Open("path/to/word/document.docx", false))
{
    foreach (HyperlinkRelationship hyperlink in document.MainDocumentPart.HyperlinkRelationships)
    {
        string hyperlinkId = hyperlink.Id;
        string hyperlinkUri = hyperlink.Uri.ToString();

        UriPartRelationship relationship = document.MainDocumentPart.GetPartById(hyperlinkId) as UriPartRelationship;
        string absoluteUri = relationship.Uri.ToString();

        // 在这里处理超链接的绝对URI
    }
}

这样,你就可以使用OpenXML SDK获取MS Word中超链接的绝对URI了。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,建议在腾讯云官方网站上查找相关产品和文档,以获取更多关于腾讯云的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

dotnet OpenXML 修复 Office 文档里面包含格式不正确的 Uri 而无法解析

在使用 OpenXML 解析 Office 文档,无论是 PPT 还是 Word 还是 Excel 文档,都会使用标准方式解析。...sanitize malformed URIs by twsouthwick · Pull Request #793 · OfficeDev/Open-XML-SDK 可以看到我也在这个修复中,提了一些有趣的看法...在 2.12.0 或以上的版本,可以在 OpenSettings 里面传入如何处理格式不对的 Uri 的文档,如本文使用到的测试文档,这是一个 Excel 文档,这个文档里面包含下面代码 ...mailto:mailto@one@ 可以看到这个超链接是格式不正确的,此时如果使用 Uri 的构造函数传入,将会提示格式出错...dotnet OpenXML 解压缩文档为文件夹工具 工具协助测试的,这个工具是开源免费的工具,欢迎小伙伴使用 更多请看 Office 使用 OpenXML SDK 解析文档博客目录 ----

1.8K10

Office OpenXml SDK 使用 Fallback 图片显示 Ole 元素

或者我用插件做了一个复杂的元素,在没有插件的设备如何让用户看到?在 Office 的一个做法是通过 Fallback 元素,在里面放一张图片 因为我的 Word 文档写了很多逗比的话,就不开放给大家。...除了 Word 在 PPT 解析上也差不多,解析 PPT 里面的 Ole 元素,使用 Fallback 元素显示图片是本文的例子。...上面如何打开 PPT 请看 C# dotnet 使用 OpenXml 解析 PPT 文件 我假定只有一个页面,因为我传入的PPT文件就只有一个页面,这个需要根据你的实际代码更改...SDK 可以使用 Linq 的方式快速读取到对应的值 var oleElement = frame.DescendantsOpenXml.Presentation.OleObject...不过 OpenXML SDK 已经封装了 那么如何从拿到 OleObject 返回备用图片,先拿到对应的页面,所有资源放在页面的 SlidePart 元素 private static

1K20
  • dotnet OpenXML 读取 PPT 内嵌 ole 格式 Excel 表格的信息

    在 Office 中,可以在 PPT 里面插入表格,插入表格有好多不同的方法,对应 OpenXML 文档存储的更多不同的方式。...本文来介绍如何读取 PPT 内嵌 ole 格式的 xls+ 表格的方法 在 Office 的 PPT 中,插入表格可以对应多个不同的方式: 通过 GraphicData 内嵌到 PPTX 页面里面 通过嵌入文件方式...在 OpenXML SDK 里面,不会真的将 PPTX 文件解压缩,原因有两个:第一个是性能考虑,第二个是有一些内容解压缩之后会丢失信息(不是使用文件存放的,只是兼容zip格式而已)而导致了尝试使用路径读取...Workbook.Sheets; 更多读取 Excel 的方法请看 C# dotnet WPF 使用 OpenXml 解析 Excel 文件 本文不再详细告诉大家如何读取此 Excel 内容 本文以上的测试文件和代码放在.../lindexi/lindexi_gd.git 获取代码之后,进入 Pptx 文件夹 更多请看 Office 使用 OpenXML SDK 解析文档博客目录 更多参考: [MS-OFFDI].pdf [

    1.4K40

    dotnet OpenXML 聊聊文本段落对齐方式

    在 Word 和 PPT 的文本段落对齐规则是相同的,对齐的规则比较多,本文将一一告诉大家 文本的段落对齐,需要设置给段落属性上,在 OpenXML SDK 里,使用 TextAlignmentTypeValues...OpenXML SDK 工具 生成的 测试效果如下: Justified 两端对齐,在 OpenXML 文档里面写入的字符串是 just 的值。...代码 本文所有代码放在github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码.../lindexi/lindexi_gd.git 获取代码之后,进入 Pptx 文件夹 参考 对齐文本 怎样将PPT中的文字强制对齐(分散对齐)-百度经验 word两端对齐与分散对齐的区别_Office教程网...两端分散对齐怎么设置_Word文档两端对齐.分散对齐如何设置_如说的博客-CSDN博客 office2016Word文档字数不同段落如何两端都对齐-百度经验 Word文档左右两端对齐有什么用,怎么调整

    1.4K30

    dotnet Open XML 如何判断一份 Office 文档是否被加密

    在拿到一份 PPTX 文档,或一份 Word 的 docx 文档,如何判断这份文档是被加密的 在 Office 里,对 pptx 文档或 docx 或 xlsx 文档的加密是将文档加密为 OLE 格式,...但是加密之后,文档格式使用 OLE Object 格式,就不能用 OpenXML SDK 读取。...因为 OpenXML SDK 将使用压缩文档读取方法读取,这个方法不能读取 OLE 文件 如果使用 OpenXML SDK 读取一个加密的 Office 文档,那么将会在读取的时候抛出 OpenXmlPackageException...告诉开发者失败 可以使用 openmcdf 这个开源库读取 OLE 文件,然后判断这个文件是否 Office 加密文件 判断一份文档是否被加密首先需要了解加密的格式,请看 [MS-OFFCRYPTO]...,小伙伴可以随意使用 最简单的方法就是通过 OpenXML SDK 读一下文档,如果抛出 OpenXmlPackageException 那么也许就是被加密了 如果想要通过读取 OLE 判断的方法,需要先在项目里面安装

    1.4K10

    dotnet OpenXML 读取 PPT 内嵌 xlsx 格式 Excel 表格的信息

    在 Office 中,可以在 PPT 里面插入表格,插入表格有好多不同的方法,对应 OpenXML 文档存储的更多不同的方式。...本文来介绍如何读取 PPT 内嵌 xlsx 格式的表格的方法 读取方法和 dotnet OpenXML 读取 PPT 内嵌 ole 格式 Excel 表格的信息 差不多,对于 Office 2019 以上版本...可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码 git init git remote add origin.../lindexi/lindexi_gd.git 获取代码之后,进入 Pptx 文件夹 更多请看 Office 使用 OpenXML SDK 解析文档博客目录 更多参考: [MS-OFFDI].pdf [...MS-XLS].pdf [MS-OI 29500].pdf ---- 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/dotnet-OpenXML

    1.1K20

    dotnet OpenXML 解析 PPT 页面元素文档格式

    本文告诉大家在 OpenXML 里面的 PPT 页面 Slide 的元素文档格式 是否小伙伴还记得如何使用 OpenXML SDK 获取一份 PPTX 文件的某一个页面?...如果不记得,请看 C# dotnet 使用 OpenXml 解析 PPT 文件 如下是一个简单的 PPTX 的 Slide 页面 ? 大概的主结构如下 ?...shape 添加断点就可以看到断点进入 在 VS 的帮助下,其实咱可以不理会PPT文档本身,直接使用 OpenXML 解析完成的值,这样做的优势在于不需要频繁去找文档。...但 PPT 使用的文本和 Word 的文本是等价的,而 Word 的文本小伙伴都知道有多复杂了…… 因此在 PPT 解析里面的神坑其实就是文本的解析部分,关于文本解析我写了一些博客 换句话说如果完成了...而表格是 Excel 的简化版 基本上完成一个元素的完全解析,基本上也就完成 Office 系列软件某个元素的解析 本文说的解析其实是不对的,因为使用 OpenXML SDK 库就是瞬间完成了内存模型解析

    1.1K20

    dotnet OpenXML 解析 PPT 图表 面积图入门

    本文告诉大家如何使用 OpenXML 解析 PPT 的图表,以面积图为入门例子告诉大家 OpenXML 的存储 在 PPT 里面,有强大的图表功能,可以联动 Excel 展示数据。...,和各个系列的系列名称和系列数据 下面将告诉大家如何根据 OpenXML SDK 提供的方法读取到图表的内容 读取图表 在开始之前,还请大家先了解 OpenXml 读取 PPT 的基础。...在 OpenXml SDK 里,封装好了获取方法,获取时需要有两个参数,一个是 id 另一个是去哪里获取的 Part 内容。...在 OpenXml SDK 里,封装好了获取方法,获取时需要有两个参数,一个是 id 另一个是去哪里获取的 Part 内容 var id = chartReference?....将在后续博客告诉大家这些内容和行为,请看 Office 使用 OpenXML SDK 解析文档博客目录 代码 本文以上的测试文件和代码放在github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码

    98130

    C# dotnet 使用 OpenXml 关闭时不自动保存文档方法

    默认在使用 OpenXML SDK 读写 Office 文件,如 PPT 或 Word 或 Excel 文件时,在关闭时调用 Dispose 将会自动将更改部分写入到文件。...本文告诉大家如何让 OpenXML SDK 不写入只是释放资源 如使用以下代码传入 .docs 文件进行解析 using var wordprocessingDocument =...Text = "逗比"; 根据 C# 最新的语法,在使用了 using var 将会在方法结束的时候,自动调用 Dispose 方法,和 using () 的写法差不多。...OpenXML 格式文件,如 docx 和 pptx 和 xlsx 等文件都可以设置在关闭时不自动保存 本文所有代码放在 github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码,先创建一个空文件夹...,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码 git init git remote add origin https://gitee.com/lindexi

    51930

    C# dotnet WPF 使用 OpenXml 解析 Excel 文件

    在 2013 微软开源了 OpenXml 解析库,在微软的 Excel 文档,使用的文档格式就是国际规范的 OpenXml 格式。这个格式有很多版本,详细请看百度。...因为表格文稿使用的是 OpenXml 在 .NET 开发可以非常简单将 Excel 文档进行解析,大概只需要两句话 本文通过一个简单的 WPF 程序告诉大家如何解析,这个简单的 WPF 程序简单到仅有一个按钮...,在点击按钮时自动解析 Excel 文档的内容 用 OpenXML 能做什么?...其实可以做的东西很多,例如在 WPF 或 UWP 或 Xamarin 等里面使用 OpenXML 解析读取 Excel 文件内容,读取 PPT 和 Word 等文档的内容,只要符合 OpenXML 格式就能进行读取...代码放在 github 欢迎小伙伴访问 如何添加断点请看 VisualStudio 断点调试详解 除了使用 OpenXML SDK 这个免费的库之外,还可以使用 EPPlus 这个收费或 LGPL 的库

    1.2K10

    dotnet OpenXML 让 PathLst 自定义形状转 SVG 路径格式的 Geometry 内容

    本文将告诉大家如何将 PathLst 自定义形状转换为标准的 SVG 路径,以支持在 WPF 或 UWP 中的 Path 元素作为 Geometry 显示 在 ECMA 376 标准里面的 20.1.9.16...有对 PathLst 做详细的规定,本文的方法适合于符合 ECMA 376 的 Office 文档,包括 PPT 和 Word 和 Excel 等文档 开始之前请先看一下效果,下面是 PowerPoint...SDK 里面,读取页面里面所有的自定义形状,可以使用如下代码 using (var presentationDocument = DocumentFormat.OpenXml.Packaging.PresentationDocument.Open...github 或 gitee 上阅读代码 本文的属性是依靠 dotnet OpenXML 解压缩文档为文件夹工具 工具协助测试的,这个工具是开源免费的工具,欢迎小伙伴使用 更多请看 Office 使用...OpenXML SDK 解析文档博客目录 ---- 如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者前往 CSDN 关注我的主页

    1.9K20

    dotnet OpenXML 解析 PPT 里表格的样式

    在 PPT 里面的表格可以通过表格样式配置决定表格的样式,本文将和大家介绍如何获取和解析表格的样式 本文属于 OpenXML 系列博客,有一定的上下文,详细请参阅 Office 使用 OpenXML SDK...里面去,对于这样定义的文档来说,直接获取 TableStyle 即可 大概的获取代码如下 // 先已拿到 Table 对象,也就是 a:tbl 属性 // 以下代码存放在获取表格样式方法...比如本文所使用 {21E4AEA4-8DFA-4A89-87EB-49C32662AFE0} 样式。...此样式是可以在 PPTX 文档里面默认不写样式定义的 对应以上的代码,也就是无法从 TableStyleList 里面获取到 tableStyleEntry 对象。...此时就需要采用代码自己编写预设的样式 // 从 Application 级获取表格的样式。 tableStyleEntry ??

    59530

    dotnet OpenXML 利用合并表格单元格在 PPT 文档插入不可见的额外版权信息

    本文告诉大家如何利用 Office 对于 OpenXML 支持的特性,在 PPT 的表格里面,通过合并单元格存放一些额外的信息,这些信息对用户来说是不可见的,但是进行拷贝表格等的时候,可以保存此信息内容...在开始之前,期望大家已了解很多 OpenXML 知识,详细请看 Office 使用 OpenXML SDK 解析文档博客目录 在 PPT 的表格里面,采用了 RowSpan 用来表示单元格跨行,对应的在下一行的单元格将会被标记...例如我对第一行第一个单元格设置合并单元格,合并行,那么在第二行的第一列的单元格将被标记 vMerge="1" 表示被合并,如下面表格 在 Office 读取 OpenXML 文档,将无视 vMerge...="1" 的存在,也就是此属性只是给开发者看的而已,无论是否存在都不会影响到单元格的合并 但事实上,依然可以在标记了 vMerge="1" 的单元格上面添加内容,例如以下有删减的 OpenXML 文档...本文以上的测试文件和代码放在github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码

    99910

    dotnet OpenXML SDK 形状的翻转与旋转

    可以看到使用 a:off 决定元素的坐标,而这个形状线条多长和方向就通过 a:ext 决定,请看下面 ?...SDK 的 flipV="1" 对应代码如下 BooleanValue verticalFlip = transform.VerticalFlip; 那么垂直翻转是什么含义?...而在 PPT 中,在进行垂直方向镜像之后,不能更改元素的坐标,也就是如果绘制出线条形状的外接矩形,可以看到外接矩形在元素进行翻转前后的坐标和大小不变 那么如果加上旋转呢?...在翻转之后的箭头是 45 度,而加上旋转是在翻转之后加上的,此时加上 45 度也是 90 度 所以可以看到上面代码的箭头是 90 度的 关于元素的宽度高度等请看 C# dotnet 使用 OpenXml...OfficeDocumentZipper 这个工具在 GitHub 完全开源,请看 dotnet OpenXML 解压缩文档为文件夹工具 更多请看 Office 使用 OpenXML SDK 解析文档博客目录

    95230

    dotnet OpenXML 使用 MAUI 渲染 PPT 的面积图图表

    如对 OpenXML 解析 PPT 毫无概念的伙伴,阅读本文也不会存在问题,只需要假定本文的解析 PPT 的代码是通过某个方式获取到了图表的相关信息即可,请将重点放在图表的绘制渲染,以及如何做跨平台对接上...不代表只能通过图片文件的方式接入,其他绘制方法请看 WPF 使用 MAUI 的自绘制逻辑 在 Linux 下,使用 Skia 对接 Gtk 框架,界面效果如下: 动态运行效果如下 接下来将告诉大家如何实现...使用 dotnet OpenXML 解析 PPT 图表 面积图入门 的方法解析出图表的内容将获取到的内容放入到 AreaChartRenderContext 类型,此类型用来提供渲染绘制使用的上下文,包括以下属性...在 OpenXml SDK 里,封装好了获取方法,获取时需要有两个参数,一个是 id 另一个是去哪里获取的 Part 内容 var id = chartReference?.Id?....Value; // 这里需要告诉 OpenXml SDK 去哪里获取资源。

    2.1K30

    dotnet 使用 OpenXML SDK 解析 Office 的项目符号 buNone 含义

    在使用 OpenXML SDK 解析的时候,只需要开发 10 分钟就完成了整个 PPT 的解析了,剩下就是如何使用解析完成的数据。...入门的文档请看 C# dotnet 使用 OpenXml 解析 PPT 文件 在 Office 的段落里面可以使用 表示当前这一段不要显示项目符号,而这个属性的作用还需要小伙伴动手改一下...其实这里涉及一个命名问题,在 OpenXML SDK 里面给了一个很好理解的命名是 NoBullet 也就是不要项目符号。...这个符号是什么意思,下面请看小伙伴修改一下 PPT 文档,看一下 Office 的 PPT 是如何显示 咱要支持 WPS 软件,我推荐使用教育版,这个版本几乎没广告 打开 WPS 写一个文本框,里面的文本设置项目符号...这个规则在 Office 里面是这样做的,但是在 WPS 不是 在 OpenXML SDK 拿到 TextParagraphPropertiesType 段落属性,可以通过 GetFirstChild

    77110
    领券