.net VSTO Word Interop项目设置到现有项目中

p3rjfoxz  于 2023-06-07  发布在  .NET
关注(0)|答案(2)|浏览(196)

我有一个现有的项目,我想创建一个Word文档。我已将新的Word ThisDocument项目添加到现有解决方案中,并将对该项目的引用添加到现有项目中。
我尝试在现有项目中创建类的示例,如下所示:

WordEditor.ThisDocument doc = new WordEditor.ThisDocument();

我得到的错误:
没有给出与ThisDocument的必需参数'factory'对应的参数。ThisDocument(Factory,IServiceProvider)
构造器:

public ThisDocument(global::Microsoft.Office.Tools.Word.Factory factory, global::System.IServiceProvider serviceProvider) : 
                base(factory, serviceProvider, "ThisDocument", "ThisDocument") {
            Globals.Factory = factory;
        }

我知道我需要传递这两个参数,但我如何在现有项目中访问它们?

oyjwcjzk

oyjwcjzk1#

对于所有Office应用程序,包括Word,唯一可创建的对象是Application-Word.Application(对于Word)。但是在VSTO插件的情况下,Application对象已经可以通过Globals.ThisAddin.Application使用。
如果你需要创建一个新文档,不要使用new操作符-使用Application.Documents.Add

6tdlim6h

6tdlim6h2#

如果需要添加新文档,Word对象模型提供Documents.Add方法,该方法返回一个Document对象,该对象表示添加到打开文档集合中的新的空文档。新文档所使用的模板的名称可以作为参数传递。如果省略此参数,则使用Normal模板。
如果您需要从独立应用程序自动化MS Word,则无需添加对VSTO项目的引用。请参阅How to automate Microsoft Word to create a new document by using Visual C#了解更多信息。

相关问题