首页
学习
活动
专区
工具
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.7K10

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

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

98520

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.3K40

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.3K10

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

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 库就是瞬间完成了内存模型解析

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 欢迎访问 可以通过如下方式获取本文源代码

89130

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

47830

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.8K20

dotnet OpenXML 解析 PPT 里表格样式

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

53830

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

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

95410

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 解析文档博客目录

90330

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 去哪里获取资源。

2K30

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

74210
领券