.NET Tech Blog - Find Web Hosting

Find best web hosting with coupon, professional editorial reviews and customer voted reviews.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

报表的开发利器-ExcelQuicker

控件名称

ExcelQuicker

 

作者:

Eunge

 

邮箱:

      eudev.net@yeah.net

 

功能

     a)支持Excel文件报表, HTML Web在线报表浏览及其打印

     b)快速报表开发,样式化的开发,支持从DataTableDataGrid直接导出数据

      c)稳定的报表框架Framework

      d)报表开发的新概念:VBA+XLS 就像 CSS+HTML

 

 

开发背景

 

a)    背景一:用户群广泛

       MS Office Excel自诞生以来,被世界各地的人使用和认可,成为世界上使用最为广泛的办公软件。

 

b)   背景二:强大的性能

Office中的Excel在日常报表作业当中具有天生的优势,打印单的制作、OLAP数据图标分析、图形分析等。并且,Excel不仅仅支持.xls格式文件,它同样可以导出制作.htm等其他格式的文件。另外,它支持广泛的样式、VBA宏。甚至,很多没有经济实力使用应用软件的Customer使用Excel作为业务管理的载体。

 

c)    背景三:低廉的售价

相比数万美金的Crystal,几百美金的Office2000/2003,并且大多数的windows用户公司原本就拥有Office的版权,这使得架构在Office系统上的报表系统的额外软件成本几乎为0

 

d)   背景四:开发、技术

MS提供的Excel COM接口数量繁多,在茫茫的类、接口当中,我们经常会为我们需要实现的功能犯难,并且,在ASP.NET WEB开发中,稳定性是很大的隐患。对于大多数的Excel二次开发者,他们会发现Excel的异步调用会如此之慢,让人有充分的理由怀疑Excel充当报表框架的可行性。

其实,这部分是因为开发者对Excel操作的不熟悉,另外大部分的原因是因为MSExcel开发没有进行专门的优化。

 

ExcelQuicker简介:

是的,通过以上的分析,也许我们会对Office报表有所兴趣,但是我们却没有成功应用的把握,ExcelQuicker,架构在Excel之上,通过对Excel COM接口的封装,有效的改善了Excel报表的性能和稳定性,并且通过了我所开发的几个大型项目的考证,我很肯定它已经成为是一种较为成熟的方案。

 

a)性能

      伴随着算法的升级,ExcelQuicker在导出大数据量的报表时,各个版本的耗时如下图(对于20000行×10列=20万单元格的报表,在P4 2.6G + 512M配置)

image001.gif

版本

耗时

描述

Excel

20分钟无结果

 

V0.9

930

 

V1.1

530

 

V1.3

4

 

V1.5

320

 

V2.0

125

 

V2.2

126

性能的提升可见一斑

 

*通常我们直接进行C/VB.NET开发这张Excel报表,得到的结果将会是20分钟以上的遥远等待,而现在的ExcelQuicker2.2,我们可以看到ExcelQuicker可以让我们在性能上不再抱有任何怀疑。

 

b)功能面

*多样式化的报表;

*支持导出XLS文件报表;

*支持导出HTML Web在线报表,支持在线浏览和打印;

*支持OLAP透视图表;

 

一种新的实现被应用到ExcelQuicker中,那就是

Css+Html = VBA + Excel

      某些报表的布局是相当恼人的,如果可以提供给我一个像开发Windows桌面应用程序那样的编辑器会多好,简单的可视化操作,会让我们在最短的时间类完成高效的设计任务。

      然而,或许我们没有发现,Excel本身就是这样的编辑器。我们可以先制作Excel模板文件,然后把剩下的工作交给ExcelQuickerExcelQuicker甚至支持在上下两片模板之间插入大批量的数据,以此来简化开发工作。

      更强劲的办法是,我们可以像CSS对于Web页面那样,让Excel文档中的VBA脚本对于Excel文档,在没有源代码的情况下,让我们照样可以更改Excel的样式、布局和功能。因为,ExcelQuicker会自动调用Excel模板文档上的“CSS样式”——VBA脚本!而Excel文档的VBA制作极其简单,因为Excel本身提供了“宏”录制!并且对于80%的Excel录制的宏可以直接应用在ExcelQuicker中。这种方式使我们对报表的调整极为方便,甚至我们不需要重新编译整个工程,只需要简单的调整Excel模板文件或者模板文件中的VBA

 

花费:

a)系统

我们将分别对使用ExcelCrystal Report两套报表方案进行比较

image002.gif

Solution

Price

 

Office2003

$409.99 (3200RMB)

大不多的公司原本就拥有Office,根本不再需要额外开销。

Office2000

$289.99 (2400RMB)

Crystal Report(5*License)

$11200 (10RMB)

5*License Crystal有使用限制,服务器最多只能链接5个终端

Crystal Report

$100000 (约100RMB

 

由此可见,开源的ExcelQuicker架构在已拥有的Office上,你在报表的开发中,不仅仅可以节省软件费用的开销,甚至在开发的效率上也是大大提升,试想在最短的时间内提供给客户最优秀的报表系统。

 

a)开发效率

首先Crystal系统不是人人都熟练掌握,正因为它贵,所以它的确大,因此掌握它的人也毕竟没有掌握C#/VB.NET的人多,例如我们这里之前的一个采用Crystal Report(5*License)方案的系统,同样5个人力,
image003.gif

Solution

Amount

Spending

Crystal

18

128/

ExcelQuicker

24

58/

对比的这两个方案,都是我们开发人员从陌生到开发出产品所花销的时间,可以看到,要上手Crystal并开发出产品,相对于上手ExcelQuicker的效率还是差了很多。

       ExcelQuicker的上手很容易,他的主旨很简单,并且类的数量不多,相信通过ExcelQuicker的数个DEMO示例以及源代码,你可以很快熟悉ExcelQuicker的架构和开发。

 

ExcelQuicker是开源项目,你可以将它运用在你的商用项目当中或对其进行修改,但ExcelQuicker的版权归我所以,请在修改、重新发布它时,保留版权信息,作为对作者的尊重和开源项目的支持!

 

ExcelQuicker下载地址

http://www.eudev.net/

http://www.codeproject.com/csharp/excelquicker.asp

http://www.sourceforge.com/projects/excelquicker

posted on 2005-06-27 11:29  Eunge  阅读(14361)  评论(71编辑  收藏  举报