早期C#.NET绑定Office
采用早期绑定时,Visual C# 使用有关所涉及C#.NET绑定Office应用程序的可用类型信息直接绑定到它需要使用的方法或属性。编译器可以执行类型和语法检查,以确保传递到方法或属性的参数的数量和类型正确无误,并且返回的值是所期望的类型。由于早期绑定在运行时调用属性或方法所需的工作量较小,因此有时速度较快。然而,虽然早期绑定可能速度较快,但与晚期绑定之间的性能差异通常不大。
早期绑定确实有这样一个小缺点:可能会带来版本兼容性问题。例如,假定诸如 Microsoft Excel 2002 之类的自动化服务器引入了 Excel 2000 中没有的新方法或属性,或者更改了现有的属性或方法。这些更改可能会改变对象的二进制布局,并导致使用 Excel 2002 类型信息实现 Excel 2000 自动化的 Visual C# 应用程序出现问题。为了避免早期绑定发生这样的问题,通常建议您在开发和测试自动化客户端时,使用您希望支持的最低版本的 Office 应用程序的类型信息。
下列步骤说明了如何创建使用早期绑定的自动化客户端。请注意,正如这些步骤所说明的那样,早期绑定要求您引用自动化客户端的类型库。
创建使用早期绑定的自动化客户端
启动 Microsoft Visual Studio .NET。在文件菜单上,单击新建,然后单击项目。从 Visual C# 项目类型中选择 Windows 应用程序。默认情况下会创建 Form1。
添加对 Microsoft Excel 对象库的引用。为此,请按照下列步骤操作:
◆在项目菜单上,单击添加引用。
◆在 COM 选项卡上,找到 Microsoft Excel 对象库并单击选择。
注意:Office 2003 包含主 Interop 程序集 (PIA)。Office XP 不包含 PIA,但您可以下载 PIA。 有关C#.NET绑定Office的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
328912 INFO:Microsoft Office XP PIA 可供下载
◆在添加引用对话框中单击确定以接受您的选择。如果系统提示您为选定的库生成包装,请单击是。
◆在视图菜单上,选择工具箱以显示工具箱,然后向 Form1 添加一个按钮。
◆双击 Button1。将出现该窗体的代码窗口。
◆在代码窗口中,将以下代码
- privatevoidbutton1_Click(objectsender,System.EventArgse){
- }
- 替换为:privatevoidbutton1_Click(objectsender,System.EventArgse)
- {
- Excel.ApplicationobjApp;
- Excel._WorkbookobjBook;
- Excel.WorkbooksobjBooks;
- Excel.SheetsobjSheets;
- Excel._WorksheetobjSheet;
- Excel.Rangerange;
- try
- {
- //InstantiateExcelandstartanewworkbook.
- objApp=newExcel.Application();
- objBooks=objApp.Workbooks;
- objBook=objBooks.Add(Missing.Value);
- objSheets=objBook.Worksheets;
- objSheet=(Excel._Worksheet)objSheets.get_Item(1);
- range=objSheet.get_Range("A1",Missing.Value);
- range.set_Value(Missing.Value,"Hello,World!");
- //ReturncontrolofExceltotheuser.
- objApp.Visible=true;
- objApp.UserControl=true;
- }
- catch(ExceptiontheException)
- {
- StringerrorMessage;
- errorMessage="Error:";
- errorMessage=String.Concat(errorMessage,theException.Message);
- errorMessage=String.Concat(errorMessage,"Line:");
- errorMessage=String.Concat(errorMessage,theException.Source);
- MessageBox.Show(errorMessage,"Error");
- }
- }
【编辑推荐】