Excel是很强大的软件工具, 而且在数据处理分析与展示上面被广泛应用, 项目中如果充分利用Excel功能, 一来是可以降低一些不必要的功能重复开发, 二来用户也可以用更熟悉的模式操控数据。但是,如何集成Excel,有很多的选择,本文主要站在B/S结构应用的角度,试图整理各种可能的方案,并分析其特点,便于今后在项目和产品中选择。
一、需要集成的Excel功能
一般而言,下面几个功能是在开发中最需要集成:
- 报表:Excel报表当然是最基础的
- 图表:Excel的图表功能还是用的很多,是展现数据的强大方法,比大多图表工具都好用,另文已有说明
- 计算与分析引擎:Excel的计算能力不错,可以用VBA等来进行开发应用充分发挥其内部计算引擎的能力(很多老外的专业解决方案都是基于Excel开发的),如果再集成到自己的B/S应用中,往往是“四两拨千金”,另外,Excel的数据挖掘功能也是让人垂涎欲滴。
- 数据处理引擎:这个往往容易被户列,Excel之所以这么流行,一个关键就是基础数据处理的强大(Google也是这样),如数据导入导出 数据变换(灵活的矩阵,比SQL方便) 排序...
- 数据交换机制:Excel这么流行,而且现在支持Open XML描述等,很容易作为一个标准的数据交换格式在各个系统中使用。
二、集成Excel的接口技术
最容易接口的软件就是那种可以自动给它输入数据,然后自动处理,然后输出数据,本质上可以当作黑盒子的。Excel提供了多种接口选择,一般都很高级都是COM组件,不过最习惯还是Unix风格的命令行和管道之类的自由方式,要是Excel后面支持PowerShell就好了。B/S架构下,Excel粗略可以分成这几种接口类型:
[1] 直接读取二进制的Excel文件(或者.csv/excel-xml文件):Office2007中的Excel,Word,PowedPoint使用了OpenXml文件格式,文件是一个标准的zip压缩包,只需要简单的将文件的扩展名更改为.zip,就能看到其内部的具体内容,大部分是标准的xml文件,因此可以使用第三方或者开源的库直接处理excel文件如ExcelPackage等。
[2] OLEDB/ADO接口:把Excel当作是数据库,通过OLEDB/ADO接口存取,连接字符串如下: "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = c:test.xls;Extended Properties=Excel 8.0;”
[3] 客户端的ActiveX控件--尤其是交互数据透视表视图
[4] Excel Application Automation组件:完整的Excel对象模型
[5] OWC 组件(Office Web Component):可以看做是Excel对象模型的Web 简化版,包含了一些比较适合Web化的常用Excel功能如图表、数据透视图等
[6] Excel Services
[7] XML SOAP
[8] office中间件
阅读(2552) | 评论(0) | 转发(0) |