2014-03-31 88 views
0

这是我的代码替换超链接....查找并从Word文档

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异常:内部异常为空,当链接数IAM越来越正确。请告诉我,如果任何人有想法如何检索超链接URL。

+1

这将是更容易帮助你,如果你粘贴COM异常错误的来源信息。 – prvit

+0

links [i]'抛出'System.IO.FileNotFoundException'类型的异常,它给出的文件未找到异常,其路径为“C:\ Users \ gojoseph \ documents \ visual studio 2010 \ Projects \ Test \ Test \ UpdatedDoc \ ACOM Acom test.docx“,当iam经过运行它的打开正确的文件,但它的显示文件没有在这里找到。 – win

回答

1
string c = links[i].Target 

应该可以正常工作。

+0

没有它没有以这种方式得到com异常错误。并显示内部异常为空,而它给予正确的计数。 – win

+1

您确定要[[Target]](http://msdn.microsoft.com/de-de/library/microsoft.office.interop.word.hyperlink.target(v = office.11​​).aspx) ?这不是网址。 – nvoigt

+0

是的,我只想要目标。 – win

-1

Here是一个例子,其中所有字段的'(所有超链接都是字段)起始节点被选中,然后按照你想要的方式执行。检查您是否收到与调用.Target属性相同的c​​om异常错误。

+0

这似乎是第三方API,而不是OP正在使用的com互操作类。 – nvoigt

+0

@nvoigt我刚刚提议尝试,因为如果它工作正常,OP可以查看实现以了解如何执行相同操作,或者只是使用它。 – prvit

1

试试这个:

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