.NET报表完美解决方案(修正版)

Excel Quicker是一款由Eunge开发的报表组件,旨在利用Excel作为低成本、高性价比的报表解决方案。它支持OLAP透视图,具备高性能和稳定性,并通过Visual Studio的抽象工厂设计模式进行设计。该组件通过VBA接口增强Excel功能,解决了.NET平台与Excel交互的开发难题,适用于B/S架构系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报表完美解决方案

——Excel Quicker组件

控件名称

Excel Quicker

 

作者:

Eunge

 

邮箱:

      eudev.net@yeah.net

 

网站:

      http://www.eudev.net

 

开发背景

 

a)    背景一:用户群广泛

       MS Office Excel自诞生以来,被世界各地的人使用和认可,几乎成为了Office中除了Window安装最多的应用软件。Excel的功能是非常强大的,即使在报表领域面对Crystal ReportAnalysis Service等专业级别定位的报表系统也毫不逊色。

       在企业应用中,使用盗版系统是非法的。然而动则十万人民币的5×License水晶报、或者百万级的无限License水晶报表,并且还需要专业的报表开发人员,这与软件成本控制显然背道而驰。而MS Office,我想是世界上市场占有率最高的办公系统了,在企业应用中,我们更加离不开Office的身影,我们能否挖掘Office的潜力,在报表这一环节上控件成本呢?

       其实我们完全可以想到ExcelExcel解决方案是我们常见的最低廉的、最具有性价比的报表解决方案。

 

b)   背景二:强大的功能

在企业应用领域,打印单是必不可少的,但很多时候打印单完全可以无纸化,是否真正的打印出来完全由用户来决定,而Excel本身可以作为文件在网络间、企业域、Internet上传输、传阅,同时它也可以方便地打印出来,甚至也可以在安装了Office Excel系统客户端的浏览器上直接打开。在限制成本的前提下,为开发群/用户都提供了更好的选择。

并且,相对于其他在线报表解决方案,如果用户需要多次浏览/查询报表,可能需要多次的服务器处理、网络传输工作,无疑降低了效率。

 

c)    背景三:新的功能、新的特点

报表做什么?做统计、做分析、做决策!面对新的竞争压力,就需要更强劲的分析能力,知道OLAP吗?如果把Microsoft Analysis Service理解为Online Analytical Processing,那么我把Excel的分析服务理解为Off-Line Analytical Processing我想很多使用Excel的初学者都不了解ExcelOLAP数据透视图功能,并且Excel中还可以图文并茂(图:各类Chart图;文:透视表)

 

d)   背景四:开发风险

我们了解Excel的强大,但当我们把目标付诸实践的时候,却发现有风险、有难题。微软为我们献上了完美的应用程序,却没有为我们提供完美的开发接口,Excel VBA接口不友好,开发资料也是相对较少,甚至在.NET平台开发中会发生进程死亡(使用后的Excel进程无法正常的退出,从而导致越来越多的Excel进程驻留,造成系统崩溃)。

 

e)    背景五:环境,实际境况

我们团队迎来了一个新的项目,24张需求复杂的报表,报表的难度和时间紧迫性前所未有,面对紧张的开发进度,当时我们毫不犹豫的选择了我开发的ExcelQuicker第一版v0.8BETA

项目最终的成就证明我们的选择是对的,也证明了v0.9BETA(在项目的开发中,组件也随之升级到V0.9BETA)是有价值的,那个项目在User && PM && R.D一致认为难度大、时间紧的情况下,进度提前半个月结束,项目无论从质量、效率上都得到了用户的首肯。

 

碑:

项目成功以后,我开始思索如何让我们的成功、我的成功与其他人、其他项目分享,我完全重写了Excel Quicker,并且在Internet上发布第一版V1.0,随着Internet上更多的朋友开始使用本组件、随着我们Team更多的项目组开始使用Excel Quicker、也随着无数个深夜,本组件经历了一次又一次的迭代,算法、功能越来越Powerful,版本经历了V1.1V1.2V1.3V1.4V1.4AV1.5,到了最终的V2.0版本。

V2.0版本是完成重写的,我昧心的装上了BorlandTogether For .NET 2.0,绘制与C#完美结合的UMLV2.0版本可以大大的简化我们的开发,并且在性能和稳定上做了进一步的优化。

 

控件有效性:

a)性能面

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

版本

耗时

描述

V0.8

20分钟无结果

 

V0.9

930

 

V1.1

530

 

V1.3

4

 

V1.5

320

 

V2.0

预计126

性能的提升可见一斑

 

*我想我们使用本组件来生成Excel报表,速度、性能方面的疑虑今后我们将可以不必再考虑。

 

b)功能面

在制作Excel报表中,需要考虑两种方案:

Css+Html = VBA + Excel

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

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

      甚至,更强劲的办法是,我们可以像CSS对于Web页面那样,让Excel文档中的VBA脚本对于Excel文档,在没有源代码的情况下,让我们照样可以更改Excel的样式、布局和功能。因为,ExcelQuicker会自动调用Excel模板文档上的“CSS样式”——VBA脚本!而Excel文档的VBA制作极其简单,因为Excel本身提供了“宏”录制!

 

栩栩如生

ExcelQuicker上开发图文并茂的报表易如反掌,Excel提供了EQPivotTable来支持OLAP透视表,你仅仅需要在EQPivotTable对象上构造一个EQChart,并简单的设定两三个属性,就可以生成具有图文并茂的分析报表

 

效益评估:

a)系统

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

Solution

Price

 

Office2003

$409.99 (3200RMB)

 

Office2000

$289.99 (2400RMB)

 

Crystal Report(5*License)

$11200 (10RMB)

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

Crystal Report

$100000 (约100RMB

 

由此可见,ExcelQuicker可在最廉价的Office2000上运作,你只需要在服务器上安装Office2000并化肥$290美金,即可带来不一样的效果。

a)开发效率

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

Solution

Amount

Spending

Crystal

18

128/

ExcelQuicker

24

58/

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

 

当然,Crystal功能要强大得多,我们这里所指的都是能在满足用户需求的前提下,使用Excel报表方案是非常值得我们考虑的。

 

简介:

ExcelQuicker V2.0

1Main In Abstract Factory Design Pattern

2)支持OLAP透视图表,相应的编程相当简便;

3)委托,每一个对象都有Before/After的委托,用于当有ExcelQuicker没有涉及的封装时,供开发者直接调用VBA接口实现;

4.Remoting技术,在B/S架构系统中,我们使用Excel技术往往的方式如下:

在这架构中,我们需要配置DCOM环境,通过DCOM调用以执行操作。

而我在V2.0版本中完全支持.Remoting技术,跨应用程序作用域,让IIS进程中只是调用远程对象的方法,实际却让桌面应用程序来完成Excel报表的生成,实现全程掌控。如下图:

这样就完美的解决了Excel内存问题,并且对Excel报表的生成全过程全程掌控。(这是正在开发的ExcelQuickerHelper,一个Winform应用程序,响应ExcelQuicker的远程请求。)

 

……

不仅仅这些,V2.0版本还提供了更多更美妙的功能。

 

如果你想知道更多,如果你想使用,请到www.eudev.net下载ExcelQuicker2.0组件,本组件免费使用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值