C#如何删除 word 中的超链接?

2020-03-13 10:57:30 +08:00
 Mrkon
如题,所用插件为 Microsoft.Office.Interop.Word;

如果是删除所有超链接比较好解决,可以直接使用 doc.Hyperlinks.get_Item(ref index).Delete(); 但是如果想删除对应文本的超链接该如何做呢?
7805 次点击
所在节点    C#
4 条回复
yicong135
2020-03-13 12:02:36 +08:00
解析 word 文档,然后找到链接删除
Mrkon
2020-03-13 12:17:50 +08:00
@yicong135 该如何定位这段文本中的超链接呢?我想删除的是 word table 中一列里面的所有超链接。可以直接使用现成的函数吗?还是说必须要将 word 解析为 xml 进行处理呢?
crazytudou
2020-03-13 17:55:26 +08:00
没用过 Microsoft.Office.Interop.Word (会受运行系统上 office 影响),都是用 NPOI (脱离 office )
先取得 Table tr td,再得到每个列内容有多段落( Paragraphs ),再判断是否网址,是就替换成空字符串
XWPFDocument doc = new XWPFDocument(stream); //docx
var tables = doc.Tables;
foreach (var table in tables)
{
foreach (var row in table.Rows)
{
foreach (var cell in row.GetTableCells())
{
foreach (var para in cell.Paragraphs)
{
//para.Text
//判断是否网址,是就替换成空字符串
}
}
}
}
Mrkon
2020-03-13 21:23:29 +08:00
@crazytudou 解决了,十分感谢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/652421

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX