首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OPPO Watch
Mrkon
V2EX  ›  C#

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

  •  
  •   Mrkon · 74 天前 · 3387 次点击
    这是一个创建于 74 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,所用插件为 Microsoft.Office.Interop.Word;

    如果是删除所有超链接比较好解决,可以直接使用 doc.Hyperlinks.get_Item(ref index).Delete(); 但是如果想删除对应文本的超链接该如何做呢?
    4 条回复    2020-03-13 21:23:29 +08:00
    yicong135
        1
    yicong135   74 天前 via Android   ❤️ 1
    解析 word 文档,然后找到链接删除
    Mrkon
        2
    Mrkon   74 天前
    @yicong135 该如何定位这段文本中的超链接呢?我想删除的是 word table 中一列里面的所有超链接。可以直接使用现成的函数吗?还是说必须要将 word 解析为 xml 进行处理呢?
    crazytudou
        3
    crazytudou   74 天前   ❤️ 1
    没用过 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
        4
    Mrkon   74 天前
    @crazytudou 解决了,十分感谢。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1248 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 22:25 · PVG 06:25 · LAX 15:25 · JFK 18:25
    ♥ Do have faith in what you're doing.