【问题标题】:VS 2013 Desktop C# Automating Word 2007VS 2013 桌面 C# 自动化 Word 2007
【发布时间】:2014-07-24 09:44:55
【问题描述】:

我已经浏览了搜索结果,但没有找到任何缓解方法。

我正在尝试用数据填充 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")

我将 word 2007 引用(Microsoft Word 12.0 对象库)添加到项目中,但 Word 对象不存在,因此前两行无法编译。

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

我是否缺少重新安装 Word 可能会显示的 dll?

还有其他想法吗?

【问题讨论】:

    标签: c# ms-word automation


    【解决方案1】:

    在我看来,最好的方法是使用 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");
    

    【讨论】:

    • 感谢 Markus:我看到我得到了对互操作程序集的引用,但对象“word”仍未定义。
    • 一旦您包含对主互操作程序集的引用,您应该能够输入“使用 Word = Microsoft.Office.Interop.Word;”在你的类文件的顶部。该语法为“Word”创建了一个别名。无论如何,设置 using 语句后,您应该可以这样做: Word.Application app = new Word.Application();或 var app = new Word.Application();
    • 我刚刚测试了它,它似乎工作。在参考下,您应该会看到“Microsoft.Office.Interop.Word”。
    【解决方案2】:

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

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

    代替

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

    使用

     Word.Application objApp ;
     Word.Document objDoc ;
    

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

    【讨论】:

    • 对不起,是的,这一定是令人困惑。我放弃了 .net 并回到了我在 Vb6 中的根源,但遇到了同样的问题,直到您的回复让我意识到我没有添加对 Microsoft Word 12 对象库的引用。我添加了对 Word 库的引用,一切都很好。 TY 编辑 - 我刚刚意识到你和马库斯给了我几乎相同的指针,导致成功的结论。我如何标记你的答案,或者我应该怎么做?
    • 您可以将 Markus 的答案投票为已接受,因为他是第一个,然后投票给我...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 2019-02-03
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    相关资源
    最近更新 更多