PIA的MSDN的官方定义是“主互操作程序集(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 对象库(PowerPoint、Access 和 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 |
操作窗格是一个可自定义的文档操作任务窗格,它附加到特定 Microsoft Office Word 文档或 Microsoft Office Excel 工作簿。它与其他内置任务窗格(比如 Excel 中的“XML 源”任务窗格或 Word 中的“样式和格式”任务窗格)一起承载于 Office 任务窗格内。可以使用 Windows 窗体控件或 WPF 控件来设计操作窗格用户界面。
创建操作窗格控件
1. 在 Visual Studio 中打开 Excel 工作簿或模板项目。
2. 在“项目”菜单上单击“添加新项”。
3. 在“添加新项”对话框中选择“操作窗格控件”,将其命名为“HelloControl”,然后单击“添加”。
如果在设计器中看不到操作窗格控件,请双击“解决方案资源管理器”中的“HelloControl”。
4. 从“工具箱”的“Windows 窗体”选项卡中,将“Button”控件拖到操作窗格控件中。
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”字样
功能区对象模型主要由功能区类、功能区事件和功能区控件类组成。
功能区类
在项目添加新的“功能区(可视化设计器)”项时,Visual Studio Tools for Office 会向项目添加一个从 OfficeRibbon 类继承的类。
此类作为在功能区代码文件和功能区设计器代码文件之间拆分的分部类出现。
OfficeRibbon 类包含下列三个事件:
Load 、LoadImage、Close
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,然后单击“添加”。
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”按钮
由于 Excel 文档中的数据是高度结构化的,因此该对象模型也具有层次结构并且简单明了。Excel 提供了数百个您可能需要与之交互的对象,不过您可以从这些对象中的少数几个开始来掌握对象模型。这些对象包括以下四种:
Application、Workbook、Worksheet、Range
使用 Excel 完成的很多工作都是围绕这四个类和它们的成员进行的。
Application 对象
Application对象表示 Excel 应用程序本身。Application 对象公开了大量有关正在运行的应用程序、应用于该实例的选项以及在该实例中打开的当前用户的对象的信息。
Workbook 对象
Workbook 对象表示 Excel 应用程序内的单个工作簿。
Worksheet 对象
Workbook 对象表示 Excel 应用程序内的单个工作表。
Range 对象
Range对象是 Excel 应用程序中最常用的对象。在能够处理 Excel 内的任何范围之前,必须将它表示为 Range 对象,并处理该对象的方法和属性。Range 对象表示一个单元格、一行、一列、包含一个或多个单元格块(可以连续,也可以不连续)的单元格选定范围,甚至多个工作表中的一组单元格。