我有一个现有的项目,我想创建一个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;
}
我知道我需要传递这两个参数,但我如何在现有项目中访问它们?
2条答案
按热度按时间oyjwcjzk1#
对于所有Office应用程序,包括Word,唯一可创建的对象是
Application
-Word.Application
(对于Word)。但是在VSTO插件的情况下,Application
对象已经可以通过Globals.ThisAddin.Application
使用。如果你需要创建一个新文档,不要使用
new
操作符-使用Application.Documents.Add
。6tdlim6h2#
如果需要添加新文档,Word对象模型提供Documents.Add方法,该方法返回一个
Document
对象,该对象表示添加到打开文档集合中的新的空文档。新文档所使用的模板的名称可以作为参数传递。如果省略此参数,则使用Normal
模板。如果您需要从独立应用程序自动化MS Word,则无需添加对VSTO项目的引用。请参阅How to automate Microsoft Word to create a new document by using Visual C#了解更多信息。