VS 2013 Desktop C#自动化Word 2007

时间:2014-06-03 21:56:03

标签: c# ms-word automation

我已经完成了搜索中的点击,并且找不到任何解脱。

我试图用数据填充Avery模板。我发现了几个很好的例子,但它们都有一个障碍。

每一个都以代码开头:

Dim objApp As Word.Application
Dim objDoc As Word.Document
objApp = New Word.Application()
objDoc = objApp.Documents.Open("//Path of a file to Open")

我将2007引用(Microsoft Word 12.0对象库)一词添加到项目中,并且Word对象不存在,因此前两行不会编译。

我是否为Word 2007获得了正确的对象库?这是我安装的唯一版本。

我是否因为重新安装Word而错过了dll?

还有其他想法吗?

2 个答案:

答案 0 :(得分:2)

在我看来,最好的方法是使用Microsoft提供的主互操作程序集。设置对COM库的引用时,Visual Studio会为您创建一个互操作程序集。据推测,自动生成的互操作程序集不会像专门为应用程序开发的程序那样干净。

这里有关于主互操作程序集的信息:

 http://www.microsoft.com/en-us/download/details.aspx?id=18346
 http://msdn.microsoft.com/en-us/library/15s06t57.aspx

编辑: 一旦设置了对Microsoft.Office.Interop.Word互操作程序集的引用,就可以在类文件的顶部像这样引用它:

 using Word = Microsoft.Office.Interop.Word;

然后,你可以在你的代码中引用它:

Word.Application app = new Word.Application();
Word.Document doc = app.Documents.Open("filename to open");

答案 1 :(得分:1)

您使用C#作为开发语言(您在帖子中附加的标签中提到过它)

但是,在您发布的代码中,您使用Visual Basic语法。 这就是为什么你不能编译前两行的原因。

而不是

Dim objApp As Word.Application
Dim objDoc As Word.Document

使用

 Word.Application objApp ;
 Word.Document objDoc ;

注意在每一行的末尾找到一个;字符。