可以用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的计算与展示特色提供大量的选项。
分享到:
相关推荐
使用 Free Spire.XLS for .NET,开发人员可以在 .NET 应用程序中快速对 Excel 文档进行各种编程操作,如根据模板创建新的 Excel 文档,编辑现有 Excel 文档以及对 Excel 文档进行转换等。Free Spire.XLS for .NET 是...
它适用于任何类型的应用程序比如ASP.NET Web应用程序或者Windows桌面应用程序。Spire.XLS for .NET允许开发人员创建和管理Excel,而不需要安装Microsoft Excel或者Microsoft Office。相比Microsoft,Spire.XLS for ...
使用 Free Spire.Office for .NET,开发人员可以创建大量的用于处理办公文档的应用程序。对文档的操作包括打开,创建,修改,转换,打印,浏览 Word、Excel、PowerPoint® 和 PDF 文档,以及将数据从数据源导出为...
【.NET开发】为.NET应用程序实现一个类似Word的对象模型 【Office开发】.NET框架下Excel报表组件编程 【Web开发】了解和扩展ASP.NET 2.0中的站点导航系统 【工具与技巧】构建高性能的ASP.NET应用程序 【工具与技巧】...
ASP.Net应用程序的多进程模型 NET委托:一个C#睡前故事 [推荐] - [原创] Microsoft .NET策略及框架概述 卸载Class? Web Form 窗体 如何实现web页面的提示保存功能 在ASP.Net中两种利用CSS实现多界面的方法 如何在...
ASP NET是微软.NET战略中的一个重要成员 除了可以使用Visual C# VB.NET VisualC++ NET JScript.NET等语言编写外 还可以使用第三方的.NET接口 如COBOL.NET Perl.NET等 进行编写 本书通过100个精彩实例 由浅入深...
如何将XML作为数据源绑定到控件 第8章 数据库设计 143.ASP.NET应用程序如何实现与SQL Server数据库的连接 144.ASP.NET应用程序如何实现与ACCESS数据库的连接 146.如何使用ADO.NET在数据库执行SQL...
e表是纯 .NET的报表工具,在.NET环境下可以无缝嵌入应用系统,因此在.NET应用中比其他非.NET的报表工具有明显优势。 用户可以通过报表设计器直接设计各种复杂格式的报表,在运行时通过报表服务器自动提取数据生成...
前后端分离框架,基于.NET5/.NET6实现的通用权限管理平台。整合最新技术高效快速开发,前后端分离模式,开箱即用。 代码量少、学习简单、通俗易懂、功能强大、易扩展、轻量级,让web开发更快速、简单高效(从此告别...
第8章深入讲解excel service的开发、调试和应用技术。.. 本书写作结构明晰,图文并茂,案例丰富,具有很强的可操作性。实例的选取兼顾深度与广度,很多实例都直接取自实际的项目。 本书可作为具有sharepoint开发...
基于Furion/.NET 6实现的通用管理平台。整合最新技术,模块插件式开发,前后端分离,开箱即用。集成SqlSugar、多租户、缓存、数据校验、鉴权、事件总线、动态API、通讯、远程请求、任务调度、gRPC等众多黑科技。代码...
在ASP.NET Core 2.0 Razor页面中导入和导出Excel NPOI是一个免费工具,支持xls,xlsx和docx扩展。 该项目是上POI Java项目的.NET版本。 POI是一个开源项目,可以帮助您... 让我们创建一个ASP.NET Core Razor Page应用
Toxy高级扩展功能Toxy除了提供基础的抽取功能,也提供一些高级的对象转换服务,比如ToxySpreadsheet转DataSet,可以直接把Excel的数据转换成DataSet,方便调用和处理。代码超级简单,如下所示:1234ParserContext c=...
Script.NET或S#是.NET应用程序的脚本语言,它允许自定义.NET应用程序的行为,与本机.NET对象,类型和程序集进行交互。 托管应用程序本身可以通过xml配置更改脚本运行时的默认行为,从而替换对本机.NET类型的方法,...
该源码是适用用于应用系统后台模块的管理(可扩展至支持集中化的权限管理平台), 0.支持N级菜单导航,菜单显示方式支持目前支持2种模式分别:菜单(无限级),横向(2级) 1.动态切换皮肤,目前有两狂UI 蓝色,...
143.ASP.NET应用程序如何实现与SQL Server数据库的连接 144.ASP.NET应用程序如何实现与ACCESS数据库的连接 146.如何使用ADO.NET在数据库执行SQL语句 147.如何使用DataReader快速访问SQL Server数据 148.如何使用...
Etk.Excel 通过模板将.Net对象渲染/绑定到Excel中。 绑定可以是双向的(Excel中的更改将影响基础对象)。 管理对象,行,单元格选择。 在模板中添加装饰器,动态菜单,按钮,扩展器等。 自2015年年中以来,法国最大...
6、.NET 和 Win32 程序集 7、服务 8、文件关联、MIME 类型 9、文件、文件夹、注册表项和值的访问权限 - 搜索、下载并安装运行环境 - 在模块和组件中组织您的应用程序 - 使用自定义操作扩展安装进程 - 自定义安装...
使用 Free Spire.Office for .NET,开发人员可以创建大量的用于处理办公文档的应用程序。对文档的操作包括打开,创建,修改,转换,打印,浏览 Word、Excel、PowerPoint® 和 PDF 文档,以及将数据从数据源导出为...