您的位置:首页 > 其它

Excel扩展.NET应用

2006-09-27 15:29 477 查看
Excel扩展.NET应用
Tony Patton
10/1/2006
URL: http://www.zdnet.com.cn/developer/code/story/0,3800066897,39435237,00.htm
可以用Excel轻松增加.NET应用软件的功能。下面我们告诉你如何做:

在最近的专栏中,我们探讨过整合微软Word与.NET框架的过程。由于微软Office办公套件功能强大,有大量整合的可能性。在本文中,我们讨论一下整合微软Excel的情形。

坚持应用VBA
我们必须指出,微软Office办公产品套件应用了Visual Basic for Applications (VBA),因此了解一些与组件对象模型(Component Object Model --COM)对象有关的知识会有帮助。但是,.NET COM互操作特性使在.NET应用软件中应用COM对象十分容易。让我们先来全面了解一下Excel对象模型。

Excel对象模型
微软Excel确实提供在其环境内的数百个程序对象。这一整套对象已超出了本文的讨论范围。因此我们只能初步讨论几个对象。下面是四个常见的对象:

* 应用:代表整个Excel应用程序。它揭示大量关于运行程序、应用该实例的选项以及在实例中开放的当前用户对象的信息。
* 工作薄:一个单独的Excel工作薄可包含一个或多个工作表。
* 工作表:一个单独的Excel工作表。工作表对象的大多数属性、方法及事件与应用和/或工作薄类提供的项目相同或类似。
* 范围:工作表单元格的范围。范围对象代表一个单元格,一行或一列。单元格的选择包含一批或多批单元格的选择,或者不同工作表中一组单元格的选择。

对象模型从顶部的应用类开始,因为它是访问Excel的起点。在你开始通过.NET COM互操作应用Excel对象时,你得使它在项目中可用。

应用微软Excel
你的.NET项目必须可应用微软Excel对象库。如果应用Visual Studio .NET,可以通过选择Project-Add Reference菜单为项目增加参考。通过增加参考(Add Reference)窗口中的COM标签可访问系统安装的COM库。Excel列为Microsoft. Excel。根据所安装的Excel版本不同,这一名称可能有所不同。我的系统上安装的是Excel 2003,所以COM库中列出的是Microsoft. Excel 11.0对象库(Object Library)。另外,还需要两个命名空间。

* Microsoft.Office.Interop.Excel:允许你通过.NET互操作应用Excel对象。
* System.Runtime.InteropServices:包括COMException类,允许你正确处理与COM相关的异常。 列表A中的代码段从当地文件系统中加载并打开一个Excel文件(列表A中包含对应的VB.NET代码)。这里是关于代码的几点提示:
* 工作薄对象的开放方法(通过应用对象访问)允许你访问现有的Excel文件。注意:作为一个C#开发器,Type.Missing值是必需的,因为Excel VBA对象方法接受大量的可选参数。Type.Missing值允许你不给参数赋值,但可对它进行重组。VB.NET支持这一方法的可选参数。
* 应用对象设置为可见;工作簿对象被激活,使其显示在屏幕上。
* 捕捉(catch)块处理与COM相关的特殊异常及常见异常。

前面的代码并不包含一个完整的应用程序,但它为我们呈现如何在C#和VB.NET中应用Excel。接下来我们通过操作工作表中的数据做进一步讨论。

列表C中的VB.NET代码建立一个新的Excel表格,插入号码,并执行计算。只有一个按钮的代码包含在内。(列表D包含对应的C#代码。)下面是对代码的几点提示:

* 一个新的Excel工作簿通过应用对象的工作簿属性的添加方法建立。这样建立一个带空白工作表的工作簿。
* 当前工作表通过工作表对象的激活表格(ActiveSheet)属性建立。
* 范围对象用于单个的单元格。单元格通过在表格中的位置来访问。例如,表标题(Techrepublic.com)插入到第一个单元格(A1=A列1行)。范围对象的值属性用于填充单元格。
* 范围对象的方程属性允许你为一个单元格或一组单元格指定一个方程。在此例中,显示整个第二列的值。
* 范围对象的计算方法处理方程。

你可能注意到C#与VB.NET版本之间存在的一些不同。在C#中,工作表类的get_Range方法用于为范围对象示例。另外,get_Range方法有第二个可选参数,所以应用Type.Missing值。最后,激活表格(ActiveSheet)对象必须在工作表类中才能应用。在应用C#运行VBA COM对象时,你得对这些不同有心理准备。

应用环境
一些读者质疑应用Excel时用户系统存在的弱点。但是,本文中的例子是为基于Windows Form的应用程序而建立的。设想的应用环境为内部应用程序,所以当它向外开放时,并不存在很大的安全问题。通过ASP.NET应用Excel也会有自身的问题,这也超出本文讨论的范围。

扩张的功能
整合Excel与.NET应用程序允许你轻松快捷地为一个应用程序提供强大的功能。Excel的计算与展示特色提供大量的选项。

责任编辑:张琎

查看本文的国际来源
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: