Office 解决方案编程模型

更新:2007 年 11 月

Microsoft Office 对象模型公开各种对象,您可以依据这些对象来编程。通常,当您使用 Automation 并借助托管代码来依据 Microsoft Office 应用程序进行编程时,实际上是直接依据主互操作程序集编写代码。在 Visual Studio Tools for Office 解决方案中,也可以直接依据项目中的宿主项编写代码。

Visual Studio Tools for Office 还通过添加事件和数据绑定功能并将它们公开为您可以添加到文档(与将控件添加到 Windows 窗体中的方式相同)中的控件,来扩展 Microsoft Office Word 和 Microsoft Office Excel 中的某些对象。这些扩展控件称为“宿主控件”。

使用宿主项

宿主项提供 Startup 和 Shutdown 事件,这些事件是代码的入口点。要初始化外接程序,可以向 Startup 事件处理程序中添加代码。要清除由外接程序使用的资源,可以向 Shutdown 事件处理程序中添加代码。有关更多信息,请参见 Visual Studio Tools for Office 项目事件

宿主项还提供宿主应用程序的对象模型的入口点。Excel 和 Word 项目提供宿主项,这些项类似于宿主应用程序的对象模型中的类。例如,Word 文档项目中 Microsoft.Office.Tools.Word.Document 宿主项类提供的成员与 Word 对象模型中 Microsoft.Office.Interop.Word.Document 类提供的成员相同。有关更多信息,请参见宿主项和宿主控件概述

应用程序级项目提供 AddIn 宿主项。此宿主项并不是从宿主应用程序的对象模型中的类派生得到的。它提供 Application 字段,该字段返回一个代表宿主应用程序当前实例的对象。有关更多信息,请参见应用程序级外接程序编程

使用宿主控件事件和数据绑定

宿主控件具有可编程的事件。例如,本机 Excel Microsoft.Office.Interop.Excel.Range 不具有任何事件,但可以针对 NamedRange 宿主控件的 Change 事件进行编程。有关更多信息,请参见演练:根据 NamedRange 控件的事件进行编程

可以像使用 Windows 窗体上的控件的事件一样针对这些事件编写代码。有关更多信息,请参见事件概述(Windows 窗体)

宿主控件也具有数据绑定功能,其工作方式与 Windows 窗体上的控件类似。使用宿主控件可以进行简单的数据绑定或复杂的数据绑定。有关更多信息,请参见将数据绑定到控件数据绑定和 Windows 窗体

依据文档级项目中的数据进行编程

文档级项目中的数据可存储在嵌入的数据岛中,并存储于与文档不同的位置,存储方式与 ASP.NET 网页存储数据的方式类似。通过使用嵌入的数据岛来存储数据,无需启动 Word 或 Excel 来实例化文档,也无需使用应用程序的对象模型,您就能够访问数据。有关更多信息,请参见文档级自定义项中的数据概述

基于架构的编程

访问和操作 Office 项目中的数据的推荐方法是创建类型化的数据集来保存正在使用的数据。使用基于架构的编程,您可以定义自己的对象模型,并且使用面向业务而不是面向 Office 的代码以更直观的方式编程。您可以把精力集中在解决方案而不是集中在 Office 对象模型上。有关类型化的数据集的更多信息,请参见 “Visual Studio 中的数据集”概述

服务器端编程

由于数据存储在嵌入的数据岛中,因此无需启动 Microsoft Office 应用程序,您就可以直接访问与存储在服务器上的文档相关联的数据。有关更多信息,请参见访问服务器上的文档数据

请参见

概念

对文档级自定义项进行编程

应用程序级外接程序编程

访问服务器上的文档数据

宿主项和宿主控件概述

其他资源

Office 文档上的控件

Office 解决方案中的数据