Office控件开发总结-Office 开发基本知识

 

1.1.     Office 主互操作程序集PIA)概述

PIAMSDN的官方定义是“主互操作程序集(PIA)是一个由供应商提供的唯一的程序集。它包含用 COM 实现的类型的类型定义(作为元数据)。只能有一个主互操作程序集(PIA),而且该程序集必须由 COM 类型库的发行者用强名称签名。一个主互操作程序集(PIA)可以包装同一类型库的多个版本。”

可以简单把Office PIA理解为Office.NET提供的编程操作接口。

下表列出了可用于 2007 Microsoft Office system 的主互操作程序集(PIA)。

Office 应用程序或组件

主互操作程序集名称

Microsoft Access 12.0 对象库

Microsoft.Office.Interop.Access.dll

Microsoft Office 2007 Access 数据库引擎对象库

Microsoft.Office.Interop.Access.Dao.dll

Microsoft Excel 12.0 对象库

Microsoft.Office.Interop.Excel.dll

Microsoft Graph 12.0 对象库(PowerPointAccess Word 将该对象库用于图形)

Microsoft.Office.Interop.Graph.dll

Microsoft InfoPath 2.0 类型库

Microsoft.Office.Interop.InfoPath.dll

Microsoft InfoPath XML 互操作程序集

Microsoft.Office.Interop.InfoPath.Xml.dll

Microsoft Outlook 12.0 对象库

Microsoft.Office.Interop.Outlook.dll

Microsoft Office Outlook 视图控件(在网页和应用程序中可用来访问收件箱)

Microsoft.Office.Interop.OutlookViewCtl.dll

Microsoft PowerPoint 12.0 对象库

Microsoft.Office.Interop.PowerPoint.dll

Microsoft Project 12.0 对象库

Microsoft.Office.Interop.MSProject.dll

Microsoft Publisher 12.0 对象库

Microsoft.Office.Interop.Publisher.dll

Microsoft SharePointDesigner 12.0 Web 对象引用库

Microsoft.Office.Interop.SharePointDesigner.dll

Microsoft SharePointDesigner 12.0 Page 对象引用库

Microsoft.Office.Interop.SharePointDesignerPage.dll

Microsoft Smart Tags 2.0 类型库

Microsoft.Office.Interop.SmartTag.dll

Microsoft Visio 12.0 类型库

Microsoft.Office.Interop.Visio.dll

Microsoft Visio 12.0 Save As Web 类型库

Microsoft.Office.Interop.Visio.SaveAsWeb.dll

Microsoft Visio 12.0 绘图控件类型库

Microsoft.Office.Interop.VisOcx.dll

Microsoft Word 12.0 对象库

Microsoft.Office.Interop.Word.dll

Microsoft Visual Basic for Applications Extensibility 5.3

Microsoft.Vbe.Interop.dll

Microsoft Office 12.0 对象库(Office 共享的功能)

office.dll

Microsoft Access 对象库的绑定重定向程序集

Policy.11.0.Microsoft.Office.Interop.Access.dll

Microsoft Excel 对象库的绑定重定向程序集

Policy.11.0.Microsoft.Office.Interop.Excel.dll

Microsoft Graph 对象库的绑定重定向程序集

Policy.11.0.Microsoft.Office.Interop.Graph.dll

Microsoft InfoPath 类型库的绑定重定向程序集

Policy.11.0.Microsoft.Office.Interop.InfoPath.dll

Microsoft InfoPath XML 互操作程序集的绑定重定向程序集

Policy.11.0.Microsoft.Office.Interop.InfoPath.Xml.dll

Microsoft Outlook 对象库的绑定重定向程序集

Policy.11.0.Microsoft.Office.Interop.Outlook.dll

Microsoft Outlook 视图控件的绑定重定向程序集

Policy.11.0.Microsoft.Office.Interop.OutlookViewCtl.dll

Microsoft PowerPoint 对象库的绑定重定向程序集

Policy.11.0.Microsoft.Office.Interop.PowerPoint.dll

Microsoft Project 对象库的绑定重定向程序集

Policy.11.0.Microsoft.Office.Interop.MSProject.dll

Microsoft Publisher 对象库的绑定重定向程序集

Policy.11.0.Microsoft.Office.Interop.Publisher.dll

Microsoft Smart Tags 类型库的绑定重定向程序集

Policy.11.0.Microsoft.Office.Interop.SmartTag.dll

Microsoft Visio 类型库

Policy.11.0.Microsoft.Office.Interop.Visio.dll

Microsoft Visio Save As Web 类型库的绑定重定向程序集

Policy.11.0.Microsoft.Office.Interop.Visio.SaveAsWeb.dll

Microsoft Visio 绘图控件类型库的绑定重定向程序集

Policy.11.0.Microsoft.Office.Interop.VisOcx.dll

Microsoft Word 对象库的绑定重定向程序集

Policy.11.0.Microsoft.Office.Interop.Word.dll

Microsoft Visual Basic for Applications Extensibility 5.3 的绑定重定向程序集

Policy.11.0.Microsoft.Vbe.Interop.dll

Microsoft Office 对象库的绑定重定向程序集

Policy.11.0.office.dll

1.2.     操作窗格概述

操作窗格是一个可自定义的文档操作任务窗格,它附加到特定 Microsoft Office Word 文档或 Microsoft Office Excel 工作簿。它与其他内置任务窗格(比如 Excel 中的“XML 源”任务窗格或 Word 中的“样式和格式”任务窗格)一起承载于 Office 任务窗格内。可以使用 Windows 窗体控件或 WPF 控件来设计操作窗格用户界面。

创建操作窗格控件

1.         Visual Studio 中打开 Excel 工作簿或模板项目。

2.         项目菜单上单击添加新项

3.         添加新项对话框中选择操作窗格控件,将其命名为“HelloControl”,然后单击添加

如果在设计器中看不到操作窗格控件,请双击解决方案资源管理器中的“HelloControl”

Office控件开发总结-Office 开发基本知识

 

4.         工具箱“Windows 窗体选项卡中,将“Button”控件拖到操作窗格控件中。

Office控件开发总结-Office 开发基本知识

 

5.         将下面的代码添加到按钮的 Click 事件处理程序中。

private void button1_Click(object sender, EventArgs e)

{

    Globals.Sheet1.Range["A1", System.Type.Missing].Value2 = "Hello World!";

}

6.         将下面的代码添加在ThisWorkbook.cs程序中。

private HelloControl hello = new HelloControl();

private void ThisWorkbook_Startup(object sender, System.EventArgs e)

{

    this.ActionsPane.Controls.Add(hello);

}

显示效果如下图所示,点击“显示Hello”按钮,在A1单元格中显示“Hello World”字样

Office控件开发总结-Office 开发基本知识

 

1.3.     功能区对象模型概述

功能区对象模型主要由功能区类、功能区事件和功能区控件类组成。

功能区类

在项目添加新的功能区(可视化设计器)”项时,Visual Studio Tools for Office 会向项目添加一个从 OfficeRibbon 类继承的类。

此类作为在功能区代码文件和功能区设计器代码文件之间拆分的分部类出现。

 

功能区事件

OfficeRibbon 类包含下列三个事件:

Load LoadImageClose

Load 事件在 Office 应用程序加载功能区自定义项时引发。Load 事件处理程序会自动添加到功能区代码文件中。可使用此事件处理程序在功能区加载时运行自定义代码。

使用 LoadImage 事件可以在功能区加载时缓存功能区自定义项中的图像。在此事件处理程序中编写代码来缓存功能区图像可以使性能稍有提高。

Close 事件在功能区实例关闭时引发。

 

功能区控件类

控件名称

类名

Box

RibbonBox

Button

RibbonButton

ButtonGroup

RibbonButtonGroup

CheckBox

RibbonCheckBox

ComboBox

RibbonComboBox

DropDown

RibbonDropDown

EditBox

RibbonEditBox

Gallery

RibbonGallery

Group

RibbonGroup

Label

RibbonLabel

Menu

RibbonMenu

Separator

RibbonSeparator

SplitButton

RibbonSplitButton

Tab

RibbonTab

ToggleButton

RibbonToggleButton

创建自定义选项卡

1.         项目菜单上单击添加新项

2.         添加新项对话框中,选择功能区(可视化设计器)”

 

3.         将新功能区更名为 MyRibbon,然后单击添加

Office控件开发总结-Office 开发基本知识

4.         MyRibbon.cs 文件将在功能区设计器中打开,并显示一个默认选项卡和组。

5.         在功能区设计器中,单击“group1”

6.         属性窗口中,将“Label”设置为操作窗格管理器

7.         工具箱“Office 功能区控件选项卡中,将一个按钮拖到“group1”上。

8.         单击“button1”将其选中。

9.         属性窗口中,将“Label”设置为显示操作窗格

10.     将另一个按钮添加到“group1”,将“Label”属性设置为隐藏操作窗格

11.     将下面代码在ThisWorkbook.cs文件中hello访问修饰符从private改成public

private HelloControl hello = new HelloControl();

private void ThisWorkbook_Startup(object sender, System.EventArgs e)

{

    this.ActionsPane.Controls.Add(hello);

}

7.         将下面的代码添加到MyRibbon.cs文件中。

private void MyRibbon_Load(object sender, RibbonUIEventArgs e)

{

    Globals.ThisWorkbook.ActionsPane.Controls.Add(Globals.ThisWorkbook.hello);

    Globals.ThisWorkbook.hello.Hide();

    Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = false;

}

 

private void button1_Click(object sender, RibbonControlEventArgs e)

{

    Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = true;

    Globals.ThisWorkbook.hello.Show();

}

 

private void button2_Click(object sender, RibbonControlEventArgs e)

{

    Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = true;

    Globals.ThisWorkbook.hello.Hide();

}

显示效果如下,点击“显示操作窗格”按钮,则显示“显示Hello”按钮。点击“隐藏操作窗格”,则隐藏“显示Hello”按钮

 

Office控件开发总结-Office 开发基本知识

 

 

1.4.     Excel 对象模型概述

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

ApplicationWorkbookWorksheetRange

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

Application 对象

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

Workbook 对象

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

Worksheet 对象

Workbook 对象表示 Excel 应用程序内的单个工作表。

Range 对象

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

你可能感兴趣的:(Office)