若要开发使用 Microsoft Office Excel 的解决方案,可以与 Excel 对象模型提供的对象进行交互。 本主题介绍最重要的对象:
- 
适用于: 本主题中的信息适用于 Excel 的文档级项目和 VSTO 外接程序项目。 有关详细信息,请参阅 Office 应用程序和项目类型提供的功能。 
注释
有兴趣开发跨多个平台扩展 Office 体验的解决方案? 查看新的 Office 加载项模型。 与 VSTO 外接程序和解决方案相比,Office 外接程序占用空间较小,可以使用几乎任何 Web 编程技术(如 HTML5、JavaScript、CSS3 和 XML)生成它们。
对象模型紧跟用户界面。 该 Application 对象表示整个应用程序,每个 Workbook 对象都包含一组 Worksheet 对象。 从那里,表示单元格的主要抽象是 Range 对象,使你能够处理单个单元格或一组单元格。
除了 Excel 对象模型,Visual Studio 中的 Office 项目还提供 主机项 和 主机控件 ,用于扩展 Excel 对象模型中的某些对象。 宿主项和主机控件的行为类似于它们扩展的 Excel 对象,但它们也有其他功能,例如数据绑定功能和额外事件。 有关详细信息,请参阅使用扩展对象自动执行 Excel和主机项和主机控件概述。
本主题简要概述了 Excel 对象模型。 有关可以了解有关整个 Excel 对象模型的详细信息的资源,请参阅 “使用 Excel 对象模型”文档。
访问 Excel 项目中的对象
为 Excel 创建新的 VSTO 外接程序项目时,Visual Studio 会自动创建 ThisAddIn.vb 或 ThisAddIn.cs 代码文件。 可以使用Me.Application或this.Application来访问 Application 对象。
为 Excel 创建新的文档级项目时,可以选择创建新的 Excel 工作簿或 Excel 模板项目。 Visual Studio 会自动在新的 Excel 项目中为工作簿和模板项目创建以下代码文件。
| Visual Basic | C# | 
|---|---|
| ThisWorkbook.vb | ThisWorkbook.cs | 
| Sheet1.vb | Sheet1.cs | 
| Sheet2.vb | Sheet2.cs | 
| Sheet3.vb | Sheet3.cs | 
在项目中,可以使用Globals类从相应类外部访问ThisWorkbook、Sheet1、Sheet2或Sheet3。 有关详细信息,请参阅 全局访问 Office 项目中的对象。 以下的示例会调用 Sheet1 的 PrintPreview 方法,无论代码是放置在 Sheet 类中的任意一个还是 ThisWorkbook 类中。
由于 Excel 文档中的数据结构很高,因此对象模型是分层的且简单明了。 Excel 提供了数百个可能需要与之交互的对象,但你可以通过专注于一小部分可用对象来很好地开始对象模型。 这些对象包括以下四个对象:
- Application 
- 工作簿 
- 工作表 
- 范围 - Excel 的大部分工作都围绕这四个对象及其成员进行。 
应用程序对象
Excel Application 对象表示 Excel 应用程序本身。 该 Application 对象公开了有关正在运行的应用程序、应用于该实例的选项以及实例中打开的当前用户对象的大量信息。
注释
不应将 EnableEvents Excel 中对象的属性 Application 设置为 false。 将此属性设置为 false 可防止 Excel 引发任何事件,包括主机控件的事件。
Workbook 对象
该 Workbook 对象表示 Excel 应用程序中的单个工作簿。
Visual Studio 中的 Office 开发工具通过提供Workbook类型来扩展Workbook对象。 此类型使你可以访问 Workbook 对象的所有功能。 有关详细信息,请参阅 工作簿托管项。
Worksheet 对象
对象 Worksheet 是 集合的成员 Worksheets 。 许多Worksheet的属性、方法和事件与Application或Workbook对象提供的成员相同或类似。
Excel 提供 Sheets 集合作为 Workbook 对象的属性。 集合的每个 Sheets 成员都是一个 Worksheet 或一个 Chart 对象。
Visual Studio 中的 Office 开发工具通过提供Worksheet类型来扩展Worksheet对象。 此类型使你能够访问对象的所有功能 Worksheet ,以及新功能,例如能够托管托管控件并处理新事件。 有关详细信息,请参阅 工作表宿主项。
Range 对象
该 Range 对象是您在 Excel 应用程序中使用最多的对象。 在操作 Excel 中的任何区域之前,必须将其表示为 Range 对象,并使用该区域的方法和属性。 对象Range 可以表示一个单元格、一行、一列、一组选定的单元格(可能包含一个或多个不连续的单元格块),甚至是跨多个工作表的单元格组。
Visual Studio 通过提供Range和NamedRange类型来扩展XmlMappedRange对象。 这些类型具有与对象相同的大部分功能 Range ,以及数据绑定功能和新事件等新功能。 有关详细信息,请参阅 NamedRange 控件 和 XmlMappedRange 控件。
使用 Excel 对象模型文档
有关 Excel 对象模型的完整信息,您可以参阅 Excel 主互操作程序集(PIA)文档和 VBA 对象模型文档。
主要互操作程序集引用
Excel PIA 参考文档描述了 Excel 主 interop 程序集中的类型。 本文档可从以下位置获取: Excel 2010 主互作程序集参考。
有关 Excel PIA 设计的详细信息,例如 PIA 中的类和接口之间的差异以及 PIA 中的事件实现方式,请参阅 Office 主互作程序集中的类和接口概述。
VBA 对象模型参考
VBA 对象模型参考文档详细说明了 Excel 对象模型的结构和功能,并将其公开给 Visual Basic for Applications (VBA) 代码。 有关详细信息,请参阅 Excel 2010 对象模型参考。
VBA 对象模型引用中的所有对象和成员都对应于 Excel PIA 中的类型和成员。 例如,VBA 对象模型引用中的 Worksheet 对象对应于 Worksheet Excel PIA 中的对象。 尽管 VBA 对象模型引用为大多数属性、方法和事件提供了代码示例,但如果要在使用 Visual Studio 创建的 Excel 项目中使用这些代码,则必须将此引用中的 VBA 代码转换为 Visual Basic 或 Visual C# 。
相关主题
| Title | Description | 
|---|---|
| Excel 解决方案 | 介绍如何为 Microsoft Office Excel 创建文档级自定义项和 VSTO 外接程序。 | 
| 与范围协作 | 提供演示如何使用范围执行常见任务的示例。 | 
| 使用工作表 | 提供演示如何使用工作表执行常见任务的示例。 | 
| 使用工作簿 | 提供演示如何使用工作簿执行常见任务的示例。 |