集成ASP、DLL、EXCEL技术快速自动生成网络复杂报表
2009-03-07李卫王魁生
李 卫 王魁生
摘要:在Web页面上根据用户需求,从后端数据库服务器上提取数据生成动态Excel报表。
关键词:ASP;DLL;权限;EXCEL公式;报表;模板;数据库
前言
在Web页面上根据用户需求,从后端数据库服务器上提取数据生成动态Excel报表,用户可查看及下载、打印,进一步对数据做深层次的加工。综合Asp、DLL(动态链接库)及Excel等技术的特点,可缩短开发人员对报表的理解用时,加快报表的生成。这种技术也是黑客惯用的侵入系统的方法。
一、技术概述
1Asp的重定向及调用动态库技术
Asp(Active Server Page)技术是使用VBScriipt、JScript等简单易懂的脚本语言,结合HTML代码,可在服务器端直接执行,快速地完成网站的应用程序。根据用户需求能够快速、方便进行重定向操作。
它同时可以方便插入组件对象。组件是包含在动态链接库DLL中的可执行代码。组件可以提供一个或多个对象以及对象的方法和属性。组件提供的对象,在实际使用中只要创建对象的实例,并将这个新的实例分配变量名即可调用它的方法和属性。使用ASP的Server,CreateObject方法可以创建对象的实例,使用脚本语言的变量分配指令可以为对象实例命名。
2Excel报表模板生成技术
报表是从数据库中按照用户需求将数据提取后,进行分类、加工得到的最后的结果,而Excel中的公式、图表对于生成报表是极其方便的。利用Excel生成报表,可使开发人员和用户紧密结合,缩短开发人员对报表理解的时间,并且用Excel开发的报表能够使最终用户有能力快速进一步对数据进行综合分析。
3DLL的生成、数据库及Excel的操纵技术
动态链接库(Dynamlc Link Library,缩写为DLL)在服务器端上是经常使用的技术,它是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源。它所调用的函数代码没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息,仅当应用程序被装入内存并开始运行时,在Windows的管理下,才在应用程序与相应的DLL之间建立链接关系,根据链接产生的重定位信息,Windows才转去执行DLL中相应的函数代码。这样就节省了服务器的内存。DLL中的例程可以被应用程序访问,而应用程序并不知道这些例程的细节。这样就提高了Web程序的安全性。
在封装好的DLL内,根据用户不同需求可以很容易生成数据库的联接、数据的提取和对已存在服务器上Excel模板文件(报表)的写入等功能。
4Web服务器上的权限设定
NT服务器上的文件安全模式分为两种,即用户权限和文件权限。必须要在Excel模板文件(报表)存在的目录设置其权限为用户System可完全控制,System用户拥有对这个目录完全控制权限。
二、实现方案
Web服务器使用Asp响应用户,根据用户不同的需求来调用DLL中不同的函数线程,该线程首先从数据库服务器上提取相应的数据,然后打开相应的Excel模板文件,将数据存入新的Excel文件。对数据进行加工处理工作重点是用Excel中的公式来定义,简单地用DLL中函数处理。最后Asp将用户需求重定向到已经生成的Excel文件上,用户即可查看、打印或者做进一步的加工厂作。当然,你必须设定NT上的System用户拥有对Excel模板存放的目录有完全控制的权限。
三、编程
1Asp编程
a用户需求选择界面
b响应用户请求的show.asp页面
2用VB编制DLL文件
在VB6.0中用向导生成一个ActiveXDLL工程文件,代码(略)。
3用Excel公式来进行数据的分类汇总工作
4最后用生成的DLL库在服务器端注册
四、结束语
实现一个目标可以选择单一的软件模式来实行,但综合几大流行软件的长处,往往可以起到事半功倍的效果。以上方法简单明了,但却在做报表工作时很有效,能节约大量的时间。同时能够自动在internet网上发布。但在程序的调试过程中,尤其是DLL的调试,最好在本地机上先调试通过,这样可以减少调试时间。本软件在西安长庆科技管理系统中得到了很好的应用。