后来,因为人们日常的工作中大量的使用电子表格软件,同时由于很多的报表工具用的非常不顺手,大量的企业用户干脆就用Excel来处理日常的报表业务,而且用的越来越广泛,越来越深入,以至于后来很多企业开发应用系统的时候,直接交给软件工程师一批Excel文件,要求报表就做成这样,甚至要直接读进去,传统的拖拽式的报表工具根本就办不到。所以到后来就出现了所谓的CELL型报表,就是类似于Excel的报表,这类报表主要是解决报表的格式和展现问题。这类报表工具刚开始也是给程序员用的,因为是模仿Excel,没有真正意义的数据统计模型,与数据库的数据接口基本上没有或非常简单,报表中的统计数据都需要由程序代码计算后填入表格中,基本上不编程序就无法自动化地根据数据库中的数据产生动态报表。虽然如此,但由于中国报表的样式过于复杂,采用SQL型报表常常无法完成,这类CELL型报表产品在国内用的倒是比较广泛,但是电子表格的非格式数据和数据库的弱关联性使这种类型的报表工具也受到了很大的限制。再到后来,最终用户总会要求把报表导出到Excel,不仅仅数据要导出,格式也要导出,所有的报表都希望和Excel平滑导入导出!所以后来的报表工具都在格式上向Excel靠拢,技术上也都在发展,并且现在的报表工具也开始直接面对最终用户,但是对于这种类Excel型的报表工具,能够通过数据模型解决掉电子表格和数据库之间弱关联的很少。
由于报表工具的不甚好用,现在的企业人员其实很多都是用Excel来处理这些报表业务的,如果是从单个的Excel文件中统计汇总,那比较简单,用Excel的函数和统计计算功能就基本可以搞定行列组的简单运算,如果是多张Excel表或是多个Excel文件,就比较麻烦,有的用VBA编程提取数据,但是一旦文件格式变了,所编写的VBA程序也得变,另外就是弄一个Excel模板,然后把一些基础表里的数据再手工录入到Excel模板里统计,这样操作手工的劳动量比较大,不过成本低,操作相对简单,什么样的格式都能弄出来,所以用的比较普遍。很多有众多分公司的企业一般由总部制定好Excel表格的格式,通过网络发送到各个分公司,然后分公司把基础Excel数据表传到总部,总部再根据自己制作的Excel表单手工录入各个分公司上传的基础表中的数据,任务比较繁杂单调,对于流程也没有做到足够的规范,人为的因素比较大。
谈完了报表工具的发展,现在谈谈在Excel中怎么搞定所有的报表,怎么用Excel服务器的报表功能来处理一些很常见的问题。先说说Excel服务器,这款软件并不是一个单纯做报表的软件,但是其报表功能相当的好用,Excel服务器是一个功能性的软件,是一个平台软件,最终用户能用它构建信息管理系统,包括ERP、CRM等等,这里不谈这个,就谈他的报表功能。企业人员都希望报表要做成Excel格式,所以出现了类Excel界面的报表工具,如其这样还不如直接用Excel作为报表系统的前端了,这样来做,因为用户很熟悉Excel的界面,本来就想做成这样的,现在完全就是,当然是没有问题了。但是上面也提了,Excel和类Excel的报表工具和数据库的关联很弱或是基本没有,那统计就麻烦了,无法从数据库中提数,怎么统计啊,这就是Excel服务器比较独特的地方,它通过独特的数据模型开发了用关系型数据库存储电子表格单元格内容的方法,至于具体怎么弄的,不得而知,那是人家的知识产权专利,既然Excel的内容能够存到数据库里,那就所有问题都解决了,理论上解决了在Excel里面完成所有报表的设想,下面就具体看看怎么弄的。
先说一下Excel服务器的操作界面,其实上面已经说了,就是Excel,你平时怎么用Excel现在就怎么用Excel服务器,简单的很,基本上不会有什么问题的,菜鸟也能很快的上手。具体说它的功能之前先做一些简单的介绍,Excel服务器分为服务器端和客户端,很显然这款软件要么在局域网上用要么在互联网上用,网络上有一台服务器安装此软件的服务器端,网络上的其他机器也就是客户端,装上此软件的客户端,在使用的时候,企业员工只要在自己装有软件客户端的机器上打开软件,通过网络登录到软件服务器端就可以用了,界面就是Excel,Excel里的所有操作都没有变化,只是多了Excel服务器的一些功能。那这个服务器端到底是干什么事情的?其实这就是关键之所在了,软件客户端所填入的数据通过独特的数据模型放在了服务器的数据库里,至于怎么弄进去的就不清楚了,反正就是你的Excel表被存进了数据库,这样一来,Excel表的数据就到了数据库里,统计的基础也就有了。当然了,如果只是把Excel表的数据放进数据库里那肯定没有用,现在Excel服务器能够让你的每一张表能够引用别人填入保存到服务器上的Excel表单数据,现在应该明白了吧!就等于说你做了一个Excel报表单,以前你要手工录入一些基础Excel表里的数据才能弄出报表,你现在可以直接在数据库里引用别人的数据了,操作自动化了,Excel网络化了,Excel数据可以共享了,不单是文件共享了。Excel服务器里面有一个叫做模板的东西,其实就是用Excel做出来的表单,相信都不会陌生吧,就是一些业务表,Excel表单的数据就是通过这个东西弄进数据库里的,设计人员设计好模板后,你只要在客户端打开这个模板,就和在Excel里打开文件差不多了,然后往模板里填入数据就行了,在用户看来就是往Excel里面填数据,和操作Excel没什么区别,这个模板是有一定的填写规范的,这里不多说了,填好保存后,数据就到数据库里去了,记住这个模板的制做是有点讲究的,要根据自己的业务做,要不然会为以后的操作带来麻烦,模板建多少个也是看你的业务需要的。只要是在这个系统里填报的数据就都到了服务器上的数据库里,就等于把所有相关的Excel表单按照某种形式存到了数据库里。然后就像上面说的,每一个Excel表单可以引用其它任意的Excel表单里的数据,这是通过Excel服务器的表间公式来实现的,具体的后台技术手段不太清楚,反正我们用户是不用考虑的,用这样的方式,统计报表自然不是问题了。不论是几张表,还是异构数据库,多源问题都可以解决,而且也可以任意分片,你制表单做模板的时候,怎么画基本上都没什么问题,要增加行列斜线都可以,支持随时修改。
现在举个具体的例子,某电力公司用Excel服务器来构建自己的报表系统,公司在互联网上应用此系统,布置一台服务器,各分厂装上软件客户端,到月末各分厂在系统中填报月度数据,通过系统将数据存储到服务器上,统计报表时只要在数据库中提取相应的数据就行了,只要设定好Excel服务器的表间公式功能,就能够在其它的Excel表格中提取数据进行汇总,比如在‘火电月度报表’模板中,各分厂只要填入‘本月累计发电量’,总部的设计者只要通过表间公式就能够将各分厂的这一数据提取出来进行汇总,就无需再重新录入基础Excel表单中的数据,而且一旦格式要求改变,只需要更改一下模板就可以了。各种复杂样式的报表在这一系统中都可以实现。此软件的其它功能笔者不甚熟悉,不过凭此一项,跑马圈地已是不在话下了。