若要开发使用 Microsoft Office Excel 的解决方案,可以与 Excel 对象模型提供的对象进行交互。本主题介绍最重要的类:
Microsoft.Office.Interop.Excel.Application
|
|
-- Microsoft.Office.Interop.Excel.Workbook
|
|
--Microsoft.Office.Interop.Excel.Worksheet
|
|
--Microsoft.Office.Interop.Excel.Range
Application 对象
Excel Application 对象表示 Excel 应用程序本身。Application 对象公开了大量有关正在运行的应用程序、应用于该实例的选项以及在该实例中打开的当前用户的对象的信息。
注意
不应将 Excel 中 Application 对象的 EnableEvents 属性设置为 false。将此属性设置为 false 将阻止 Excel 引发任何事件,包括宿主控件的事件。
Workbook 对象
Microsoft.Office.Interop.Excel.Workbook 类表示 Excel 应用程序中的单个工作簿。Visual Studio Tools for Office 通过提供 Microsoft.Office.Tools.Excel.Workbook 类(使用该类可以访问 Workbooks 集合的所有成员)以及数据绑定功能和附加事件来扩展 Microsoft.Office.Interop.Excel.Workbook 类。
Worksheet 对象
Microsoft.Office.Interop.Excel.Worksheet 对象是 Worksheets 集合的成员。Microsoft.Office.Interop.Excel.Worksheet 的许多属性、方法和事件与 Application 或 Microsoft.Office.Interop.Excel.Workbook 类提供的成员完全相同或相似。
Excel 提供 Sheets 集合作为 Microsoft.Office.Interop.Excel.Workbook 对象的属性,但是 Excel 中没有 Sheet 类。相反,Sheets 集合的每个成员都是一个 Microsoft.Office.Interop.Excel.Worksheet 对象,或者是一个 Microsoft.Office.Interop.Excel.Chart 对象。Visual Studio Tools for Office 提供 Microsoft.Office.Tools.Excel.Worksheet 宿主项,并在创建项目时创建三个实例:Sheet1、Sheet2 和 Sheet3。对其中任何工作表的访问都可以通过 Globals 引用进行。Visual Studio Tools for Office 通过提供 Microsoft.Office.Tools.Excel.Worksheet 宿主项来扩展 Microsoft.Office.Interop.Excel.Worksheet 对象。
Range 对象
Microsoft.Office.Interop.Excel.Range 对象是 Excel 应用程序中最常用的对象。在能够处理 Excel 内的任何范围之前,必须将它表示为 Range 对象,并处理该对象的方法和属性。Range 对象表示一个单元格、一行、一列、包含一个或多个单元格块(可以连续,也可以不连续)的单元格选定范围,甚至多个工作表中的一组单元格。
Visual Studio Tools for Office 引入了两个范围宿主控件:Microsoft.Office.Tools.Excel.NamedRange 控件和 Microsoft.Office.Tools.Excel.XMLMappedRange 控件。有关宿主控件的更多信息,请参见 宿主项和宿主控件概述。
文档级项目中的扩展对象
了解 Excel 对象模型提供的本机对象和 VSTO 2005 提供的扩展对象(宿主项和宿主控件)之间的区别非常重要,因为这两类对象都可用于文档级项目。务必记住下面的几点:
设计时。当您在设计时添加任何扩展的 Excel 对象时,它们将自动创建为宿主项和宿主控件。例如,如果在设计器中向工作表添加一个列表,则会自动生成将该列表扩展为一个 Microsoft.Office.Tools.Excel.ListObject 控件的代码。
运行时。不会在运行时自动创建宿主项。如果在运行时添加工作簿、工作表或图表工作表,它们将是本机 Excel 对象,不具备宿主项所提供的附加功能。您能够以编程方式添加许多宿主控件。
数据绑定和事件。宿主项和宿主控件具有数据绑定功能和事件,这两点是本机对象所不具备的。
类型。本机 Excel 对象使用 Microsoft.Office.Interop.Excel 命名空间中定义的类型,而宿主项和宿主控件使用 Microsoft.Office.Tools.Excel 命名空间中定义的聚合类型。
所谓宿主项和宿主控件---为 Visual Studio Tools for Office 解决方案提供编程模型的类。即,它们使得与基于 COM 的 Microsoft Office 应用程序进行交互更像与托管对象进行交互。
下面列出了可用的宿主项和宿主控件:
Excel 宿主项
Worksheet
Workbook
ChartSheet
Word 宿主项
文档
外接程序宿主项
AddIn
Excel 宿主控件
NamedRange 控件
XMLMappedRange 控件
ListObject 控件
Chart 控件
Word 宿主控件
Bookmark 控件
XMLNode 控件
XMLNodes 控件
关于宿主项和宿主控件详细的介绍,可以参考MSDN文档。
Microsoft.Office.Interop.Excel.Application
|
|
-- Microsoft.Office.Interop.Excel.Workbook
|
|
--Microsoft.Office.Interop.Excel.Worksheet
|
|
--Microsoft.Office.Interop.Excel.Range
Application 对象
Excel Application 对象表示 Excel 应用程序本身。Application 对象公开了大量有关正在运行的应用程序、应用于该实例的选项以及在该实例中打开的当前用户的对象的信息。
注意
不应将 Excel 中 Application 对象的 EnableEvents 属性设置为 false。将此属性设置为 false 将阻止 Excel 引发任何事件,包括宿主控件的事件。
Workbook 对象
Microsoft.Office.Interop.Excel.Workbook 类表示 Excel 应用程序中的单个工作簿。Visual Studio Tools for Office 通过提供 Microsoft.Office.Tools.Excel.Workbook 类(使用该类可以访问 Workbooks 集合的所有成员)以及数据绑定功能和附加事件来扩展 Microsoft.Office.Interop.Excel.Workbook 类。
Worksheet 对象
Microsoft.Office.Interop.Excel.Worksheet 对象是 Worksheets 集合的成员。Microsoft.Office.Interop.Excel.Worksheet 的许多属性、方法和事件与 Application 或 Microsoft.Office.Interop.Excel.Workbook 类提供的成员完全相同或相似。
Excel 提供 Sheets 集合作为 Microsoft.Office.Interop.Excel.Workbook 对象的属性,但是 Excel 中没有 Sheet 类。相反,Sheets 集合的每个成员都是一个 Microsoft.Office.Interop.Excel.Worksheet 对象,或者是一个 Microsoft.Office.Interop.Excel.Chart 对象。Visual Studio Tools for Office 提供 Microsoft.Office.Tools.Excel.Worksheet 宿主项,并在创建项目时创建三个实例:Sheet1、Sheet2 和 Sheet3。对其中任何工作表的访问都可以通过 Globals 引用进行。Visual Studio Tools for Office 通过提供 Microsoft.Office.Tools.Excel.Worksheet 宿主项来扩展 Microsoft.Office.Interop.Excel.Worksheet 对象。
Range 对象
Microsoft.Office.Interop.Excel.Range 对象是 Excel 应用程序中最常用的对象。在能够处理 Excel 内的任何范围之前,必须将它表示为 Range 对象,并处理该对象的方法和属性。Range 对象表示一个单元格、一行、一列、包含一个或多个单元格块(可以连续,也可以不连续)的单元格选定范围,甚至多个工作表中的一组单元格。
Visual Studio Tools for Office 引入了两个范围宿主控件:Microsoft.Office.Tools.Excel.NamedRange 控件和 Microsoft.Office.Tools.Excel.XMLMappedRange 控件。有关宿主控件的更多信息,请参见 宿主项和宿主控件概述。
文档级项目中的扩展对象
了解 Excel 对象模型提供的本机对象和 VSTO 2005 提供的扩展对象(宿主项和宿主控件)之间的区别非常重要,因为这两类对象都可用于文档级项目。务必记住下面的几点:
设计时。当您在设计时添加任何扩展的 Excel 对象时,它们将自动创建为宿主项和宿主控件。例如,如果在设计器中向工作表添加一个列表,则会自动生成将该列表扩展为一个 Microsoft.Office.Tools.Excel.ListObject 控件的代码。
运行时。不会在运行时自动创建宿主项。如果在运行时添加工作簿、工作表或图表工作表,它们将是本机 Excel 对象,不具备宿主项所提供的附加功能。您能够以编程方式添加许多宿主控件。
数据绑定和事件。宿主项和宿主控件具有数据绑定功能和事件,这两点是本机对象所不具备的。
类型。本机 Excel 对象使用 Microsoft.Office.Interop.Excel 命名空间中定义的类型,而宿主项和宿主控件使用 Microsoft.Office.Tools.Excel 命名空间中定义的聚合类型。
所谓宿主项和宿主控件---为 Visual Studio Tools for Office 解决方案提供编程模型的类。即,它们使得与基于 COM 的 Microsoft Office 应用程序进行交互更像与托管对象进行交互。
下面列出了可用的宿主项和宿主控件:
Excel 宿主项
Worksheet
Workbook
ChartSheet
Word 宿主项
文档
外接程序宿主项
AddIn
Excel 宿主控件
NamedRange 控件
XMLMappedRange 控件
ListObject 控件
Chart 控件
Word 宿主控件
Bookmark 控件
XMLNode 控件
XMLNodes 控件
关于宿主项和宿主控件详细的介绍,可以参考MSDN文档。