【问题标题】:Find and Replace Hyperlinks from word Document从 word 文档中查找和替换超链接
【发布时间】:2014-03-31 07:04:48
【问题描述】:

这是我的代码....

Microsoft.Office.Interop.Word.Application applicationObject = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document aDDoc = applicationObject.Documents.Open(FileName: FilePath);
Microsoft.Office.Interop.Word.Hyperlinks links = aDDoc.Hyperlinks;

for (int i = 0; i < links.Count; i++)
{
    object index = (object)i;
    string c = links[index].Target; //Here i am getting Com exception, see below
}

Com 异常:内部异常为 null,链接计数正确的地方。请告诉我是否有人知道如何检索超链接 URL。

【问题讨论】:

  • 把com异常错误的来源贴上来会更容易帮到你。
  • links[i]' 引发了“System.IO.FileNotFoundException”类型的异常,它给出了我的路径为“C:\Users\gojoseph\documents\visual studio 2010\Projects”的文件未找到异常\Test\Test\UpdatedDoc\ACOM Acom test.docx" 当我通过运行它打开正确的文件,但它的显示文件未在此处找到。

标签: c# asp.net exception ms-word


【解决方案1】:

我也遇到了同样的问题,但使用下面的代码更正解决了。

而不是使用:

for (int i = 0; i < links.Count; i++)

使用这个:

for (int i = 1; i <= links.Count; i++)

【讨论】:

    【解决方案2】:
    string c = links[i].Target
    

    应该可以正常工作。

    【讨论】:

    • 不,它不能以这种方式工作,得到 com 异常错误。并将内部异常显示为 null,同时给出正确的计数。
    • 您确定要Target 吗?那不是网址。
    • 是的,我只想要目标。
    • 你确定吗?您是否阅读了有关目标是的链接?
    • 是的,我已经把它给了 www.google.com,现在我想一一获取这个 url。如果这是错误的,它不应该给出绝对正确的计数。
    【解决方案3】:

    试试这个:

                foreach (Hyperlink link in links)
                {
                    string c = link.Target;
                }
    

    【讨论】:

      【解决方案4】:

      Here 是一个示例,其中所有字段(所有超链接都是字段)的起始节点都被选中,然后以您想要的方式执行。检查是否在调用.Target 属性时遇到相同的 com 异常错误。

      【讨论】:

      • 这似乎是第三方API,而不是OP正在使用的com互操作类。
      • @nvoigt 我只是建议尝试一下,因为如果它工作正常,OP 可以研究实现以找出如何做同样的事情,或者只是使用它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-15
      • 1970-01-01
      • 2013-07-12
      • 1970-01-01
      • 2017-08-06
      • 2014-07-15
      • 2021-10-19
      相关资源
      最近更新 更多