李 衛(wèi) 王魁生
摘要:在Web頁面上根據(jù)用戶需求,從后端數(shù)據(jù)庫服務(wù)器上提取數(shù)據(jù)生成動態(tài)Excel報表。
關(guān)鍵詞:ASP;DLL;權(quán)限;EXCEL公式;報表;模板;數(shù)據(jù)庫
前言
在Web頁面上根據(jù)用戶需求,從后端數(shù)據(jù)庫服務(wù)器上提取數(shù)據(jù)生成動態(tài)Excel報表,用戶可查看及下載、打印,進一步對數(shù)據(jù)做深層次的加工。綜合Asp、DLL(動態(tài)鏈接庫)及Excel等技術(shù)的特點,可縮短開發(fā)人員對報表的理解用時,加快報表的生成。這種技術(shù)也是黑客慣用的侵入系統(tǒng)的方法。
一、技術(shù)概述
1Asp的重定向及調(diào)用動態(tài)庫技術(shù)
Asp(Active Server Page)技術(shù)是使用VBScriipt、JScript等簡單易懂的腳本語言,結(jié)合HTML代碼,可在服務(wù)器端直接執(zhí)行,快速地完成網(wǎng)站的應(yīng)用程序。根據(jù)用戶需求能夠快速、方便進行重定向操作。
它同時可以方便插入組件對象。組件是包含在動態(tài)鏈接庫DLL中的可執(zhí)行代碼。組件可以提供一個或多個對象以及對象的方法和屬性。組件提供的對象,在實際使用中只要創(chuàng)建對象的實例,并將這個新的實例分配變量名即可調(diào)用它的方法和屬性。使用ASP的Server,CreateObject方法可以創(chuàng)建對象的實例,使用腳本語言的變量分配指令可以為對象實例命名。
2Excel報表模板生成技術(shù)
報表是從數(shù)據(jù)庫中按照用戶需求將數(shù)據(jù)提取后,進行分類、加工得到的最后的結(jié)果,而Excel中的公式、圖表對于生成報表是極其方便的。利用Excel生成報表,可使開發(fā)人員和用戶緊密結(jié)合,縮短開發(fā)人員對報表理解的時間,并且用Excel開發(fā)的報表能夠使最終用戶有能力快速進一步對數(shù)據(jù)進行綜合分析。
3DLL的生成、數(shù)據(jù)庫及Excel的操縱技術(shù)
動態(tài)鏈接庫(Dynamlc Link Library,縮寫為DLL)在服務(wù)器端上是經(jīng)常使用的技術(shù),它是一個可以被其它應(yīng)用程序共享的程序模塊,其中封裝了一些可以被共享的例程和資源。它所調(diào)用的函數(shù)代碼沒有被拷貝到應(yīng)用程序的可執(zhí)行文件中去,而是僅僅在其中加入了所調(diào)用函數(shù)的描述信息,僅當應(yīng)用程序被裝入內(nèi)存并開始運行時,在Windows的管理下,才在應(yīng)用程序與相應(yīng)的DLL之間建立鏈接關(guān)系,根據(jù)鏈接產(chǎn)生的重定位信息,Windows才轉(zhuǎn)去執(zhí)行DLL中相應(yīng)的函數(shù)代碼。這樣就節(jié)省了服務(wù)器的內(nèi)存。DLL中的例程可以被應(yīng)用程序訪問,而應(yīng)用程序并不知道這些例程的細節(jié)。這樣就提高了Web程序的安全性。
在封裝好的DLL內(nèi),根據(jù)用戶不同需求可以很容易生成數(shù)據(jù)庫的聯(lián)接、數(shù)據(jù)的提取和對已存在服務(wù)器上Excel模板文件(報表)的寫入等功能。
4Web服務(wù)器上的權(quán)限設(shè)定
NT服務(wù)器上的文件安全模式分為兩種,即用戶權(quán)限和文件權(quán)限。必須要在Excel模板文件(報表)存在的目錄設(shè)置其權(quán)限為用戶System可完全控制,System用戶擁有對這個目錄完全控制權(quán)限。
二、實現(xiàn)方案
Web服務(wù)器使用Asp響應(yīng)用戶,根據(jù)用戶不同的需求來調(diào)用DLL中不同的函數(shù)線程,該線程首先從數(shù)據(jù)庫服務(wù)器上提取相應(yīng)的數(shù)據(jù),然后打開相應(yīng)的Excel模板文件,將數(shù)據(jù)存入新的Excel文件。對數(shù)據(jù)進行加工處理工作重點是用Excel中的公式來定義,簡單地用DLL中函數(shù)處理。最后Asp將用戶需求重定向到已經(jīng)生成的Excel文件上,用戶即可查看、打印或者做進一步的加工廠作。當然,你必須設(shè)定NT上的System用戶擁有對Excel模板存放的目錄有完全控制的權(quán)限。
三、編程
1Asp編程
a用戶需求選擇界面
b響應(yīng)用戶請求的show.asp頁面
2用VB編制DLL文件
在VB6.0中用向?qū)梢粋€ActiveXDLL工程文件,代碼(略)。
3用Excel公式來進行數(shù)據(jù)的分類匯總工作
4最后用生成的DLL庫在服務(wù)器端注冊
四、結(jié)束語
實現(xiàn)一個目標可以選擇單一的軟件模式來實行,但綜合幾大流行軟件的長處,往往可以起到事半功倍的效果。以上方法簡單明了,但卻在做報表工作時很有效,能節(jié)約大量的時間。同時能夠自動在internet網(wǎng)上發(fā)布。但在程序的調(diào)試過程中,尤其是DLL的調(diào)試,最好在本地機上先調(diào)試通過,這樣可以減少調(diào)試時間。本軟件在西安長慶科技管理系統(tǒng)中得到了很好的應(yīng)用。