如何使用C#中的Open XML SDK更新Word文档中存在的超链接的标题/文本

问题描述

是否可以使用C#中的Open XML SDK更新Word文档中存在的现有超链接的文本/标题

我可以使用以下代码更新Word文档中存在的超链接的地址/链接

    public static Stream GetAndUpdateallHyperLinksInWordDocumentUsingOpenXMLSDKWithStream(Stream stream)
    {
        try
        {
            WordprocessingDocument doc =
            WordprocessingDocument.Open(stream,true);
            MainDocumentPart mainPart = doc.MainDocumentPart;
            //Hyperlink hLink = mainPart.Document.Body.Descendants<Hyperlink>().FirstOrDefault();
            var hLinks = mainPart.Document.Body.Descendants<Hyperlink>();

            Console.WriteLine(hLinks.Count());

            foreach (var hLink in hLinks)
            {

                if (hLink != null)
                {
                    // get hyperlink's relation Id (where path stores)
                    string relationId = hLink.Id;
                    if (relationId != string.Empty)
                    {
                        // get current relation
                        var hr = mainPart.HyperlinkRelationships.FirstOrDefault(a => a.Id == relationId);
                        if (hr == null) continue;
                        var linkUrl = hr.Uri.ToString();

                        mainPart.DeleteReferenceRelationship(hr);
                        string linkToReplace = string.Empty;

                        try
                        {
                            //Link to Replace in the word document.
                            linkToReplace = "https://stackoverflow.com/";

                            mainPart.AddHyperlinkRelationship(new System.Uri(linkToReplace,System.UriKind.Absolute),true,relationId);
                        }
                        catch (Exception exc)
                        {
                            Console.WriteLine("Error occurred while adding target url,Error Message: " + exc.Message);
                        }
                    }
                }

            }

            doc.Close();

            return stream;
            // return updated document stream
        }
        catch (Exception exc)
        {
            Console.WriteLine("Error Occurred: " + exc.Message);
            return null;
        }
    }

我在互联网上到处搜索了很多内容,但是找不到使用C#中的Open XML SDK更新Word文档中超链接标题方法

有人可以建议如何实现相同目标吗?

预先感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...