Excel 对象模型概述

若要开发使用 Microsoft Office Excel 的解决方案,可以与 Excel 对象模型提供的对象进行交互。本主题介绍最重要的对象:

**适用于:**本主题中的信息适用于 Excel 2013 和 Excel 2010 的文档级项目和应用程序级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能

对象模型严格遵循用户界面。Application 对象表示整个应用程序,每个 Workbook 对象都包含 Worksheet 对象的一个集合。因此,表示单元格的主要抽象是 Range 对象,使用该对象可以处理单个单元格或成组的单元格。

除 Excel 对象模型外,Visual Studio 中的 Office 项目还提供宿主项和宿主控件以扩展 Excel 对象模型中的一些对象。宿主项和宿主控件的行为与它们扩展的 Excel 对象类似,但它们还具有其他功能,如数据绑定功能和额外事件。有关更多信息,请参见使用扩展对象实现 Excel 自动化宿主项和宿主控件概述

本主题简要概述 Excel 对象模型。有关可供了解整个 Excel 对象模型更多相关信息的资源,请参见使用 Excel 对象模型文档。

链接到视频 有关相关的视频演示,请参见 How Do I: Use Event Handlers in an Excel 2007 Add-in?(如何实现:在 Excel 2007 外接程序中使用事件处理程序。)以及 How Do I: Use Shapes to Create a Bubble Chart in Excel?(如何实现:在 Excel 中使用形状创建气泡图。)

访问 Excel 项目中的对象

在为 Excel 创建新的应用程序级项目时,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 方法,无论代码是放在 Sheetn 类的一个类中还是放在 ThisWorkbook 类中。

Globals.Sheet1.PrintPreview()
Globals.Sheet1.PrintPreview();

由于 Excel 文档中的数据是高度结构化的,因此该对象模型也具有层次结构并且简单明了。Excel 提供了数百个您可能需要与之交互的对象,不过您可以从这些对象中的少数几个开始来掌握对象模型。这些对象包括以下四种:

  • Application

  • Workbook

  • Worksheet

  • 范围

使用 Excel 完成的很多工作都是围绕这四个对象和它们的成员进行的。

wss56bz7.collapse_all(zh-cn,VS.110).gifApplication 对象

Excel Application 对象表示 Excel 应用程序本身。Application 对象公开了大量有关正在运行的应用程序、应用于该实例的选项以及在该实例中打开的当前用户的对象的信息。

说明说明

不应将 Excel 中 Application 对象的 EnableEvents 属性设置为 false。将此属性设置为 false 将阻止 Excel 引发任何事件,包括宿主控件的事件。

wss56bz7.collapse_all(zh-cn,VS.110).gifWorkbook 对象

Microsoft.Office.Interop.Excel.Workbook 对象表示 Excel 应用程序内的单个工作簿。

Visual Studio 中的 Office 开发工具通过提供 Microsoft.Office.Tools.Excel.Workbook 类型来扩展 Microsoft.Office.Interop.Excel.Workbook 对象。此类型使您可以访问 Microsoft.Office.Interop.Excel.Workbook 对象的所有功能的访问。有关更多信息,请参见工作簿宿主项

wss56bz7.collapse_all(zh-cn,VS.110).gifWorksheet 对象

Microsoft.Office.Interop.Excel.Worksheet 对象是 Worksheets 集合的成员。Microsoft.Office.Interop.Excel.Worksheet 的许多属性、方法和事件与 ApplicationMicrosoft.Office.Interop.Excel.Workbook 对象提供的成员完全相同或相似。

Excel 提供一个 Sheets 集合作为 Microsoft.Office.Interop.Excel.Workbook 对象的属性。Sheets 集合中的每个成员都是 Microsoft.Office.Interop.Excel.WorksheetMicrosoft.Office.Interop.Excel.Chart 对象。

Visual Studio 中的 Office 开发工具通过提供 Microsoft.Office.Tools.Excel.Worksheet 类型来扩展 Microsoft.Office.Interop.Excel.Worksheet 对象。此类型使您可以访问 Microsoft.Office.Interop.Excel.Worksheet 对象的所有功能以及一些新功能(如承载托管控件及处理新事件的能力)。有关更多信息,请参见工作表宿主项

wss56bz7.collapse_all(zh-cn,VS.110).gifRange 对象

Microsoft.Office.Interop.Excel.Range 对象是 Excel 应用程序中最常用的对象。在能够处理 Excel 内的任何范围之前,必须将它表示为 Range 对象,并处理该对象的方法和属性。Range 对象表示单元格,行,列,包含一个或多个单元格块,也可能不是连续的,甚至单元格一组在多个页中单元格的选择。

Visual Studio 通过提供 Microsoft.Office.Tools.Excel.NamedRangeMicrosoft.Office.Tools.Excel.XmlMappedRange 类型扩展 Microsoft.Office.Interop.Excel.Range 对象。这些类型的功能与 Microsoft.Office.Interop.Excel.Range 对象的功能大体相同,但这些类型还拥有一些新功能(如数据绑定功能和新事件)。有关更多信息,请参见NamedRange 控件XmlMappedRange 控件

使用 Excel 对象模型文档

有关 Excel 对象模型的完整信息,可以参阅 Excel 主互操作程序集 (PIA) 参考和 VBA 对象模型参考。

wss56bz7.collapse_all(zh-cn,VS.110).gif主互操作程序集参考

Excel PIA 参考文档介绍了 Excel 主互操作程序集中的类型。此文档可从以下位置获取:Excel 2010 主互操作程序集参考

有关 Excel PIA 设计的更多信息(如 PIA 中类和接口之间的区别以及如何实现 PIA 中的事件),请参见 Overview of Classes and Interfaces in the Office Primary Interop Assemblies(Office 主互操作程序集中的类和接口概述)。

wss56bz7.collapse_all(zh-cn,VS.110).gifVBA 对象模型参考

VBA 对象模型参考介绍了向 Visual Basic for Applications (VBA) 代码公开的 Excel 对象模型。有关更多信息,请参见 Excel 2010 对象模型参考

VBA 对象模型参考中的所有对象和成员都对应于 Excel PIA 中的类型和成员。例如,VBA 对象模型参考中的 Worksheet 对象对应于 Excel PIA 中的 Microsoft.Office.Interop.Excel.Worksheet 对象。虽然 VBA 对象模型参考为大多数属性、方法和事件提供了代码示例,但若要在使用 Visual Studio 创建的 Excel 项目中使用这些代码示例,必须将此参考中的 VBA 代码转换为 Visual Basic 或 Visual C#。

wss56bz7.collapse_all(zh-cn,VS.110).gif相关主题

标题

描述

Excel 解决方案

说明如何为 Microsoft Office Excel 创建文档级自定义项和应用程序级外接程序。

使用范围

提供演示如何使用范围执行常规任务的示例。

使用工作表

提供演示如何使用工作表执行常规任务的示例。

使用工作簿

提供演示如何使用工作簿执行常规任务的示例。