摘要:本文論述了利用ASP技術將Excel工作表導入到數(shù)據(jù)庫,將數(shù)據(jù)庫查詢出來的數(shù)據(jù)導出到Excel工作表的實現(xiàn)方法,并給出了程序?qū)嵗?/p>
關鍵詞:ASP? Excel? 數(shù)據(jù)庫
0 引言
在互聯(lián)網(wǎng)高速發(fā)展的今天,很多企事業(yè)單位建立了自己的網(wǎng)站,網(wǎng)站信息管理員平時把數(shù)據(jù)輸入到網(wǎng)站的數(shù)據(jù)庫,網(wǎng)站程序會自動計算、統(tǒng)計、分析數(shù)據(jù),并產(chǎn)生用戶所需的報表,但目前很多B/S結構的信息管理系統(tǒng),數(shù)據(jù)的輸入還是只能一條一條記錄地輸入,輸出的報表格式固定不能滿足用戶的需求。對于信息管理員來說,很多的數(shù)據(jù)還是存儲在Excel工作簿中,比如:某手機經(jīng)營店上了一套進銷存管理系統(tǒng),店里每次進貨都是幾百上千地進,供貨商會給出Excel格式的進貨單,存儲的信息是手機串號、機型、品牌、進價等信息,對于手機經(jīng)營店來說,希望能夠直接把供貨商給的Excel工作表數(shù)據(jù)導入系統(tǒng),如果自己輸入,工作量很大。企業(yè)應用軟件最后輸出結果都是報表的形式,他們希望輸出的報表能夠進行二次分析利用。對于開發(fā)信息管理系統(tǒng)的程序員來說,報表的顯示和打印是整個開發(fā)過程中最麻煩但又必須做的事情,如果我們能把報表輸出結果轉化到Excel文件中,提供給用戶進行二次加工處理,這樣就提高了程序的通用性。本文介紹了ASP技術實現(xiàn)網(wǎng)站數(shù)據(jù)庫和Excel交互的方式,給出了程序?qū)嵗?/p>
1 相關技術簡介
①Excel電子表格。Excel是微軟辦公套裝軟件的一個重要的組成部分,它可以進行各種數(shù)據(jù)的處理、統(tǒng)計分析和輔助決策操作,廣泛地應用于管理、統(tǒng)計財經(jīng)、金融等眾多領域。大部分人都是用它來進行數(shù)據(jù)處理,制作電子表格。②ASP和SQL Server數(shù)據(jù)庫。ASP是一種服務器端腳本編寫環(huán)境,可以用來創(chuàng)建和運行動態(tài)網(wǎng)頁或Web應用程序。ASP網(wǎng)頁可以包含HTML標記、普通文本、腳本命令以及COM組件等。它可以與數(shù)據(jù)庫和其它程序進行交互,是一種簡單、方便的編程工具。SQL Server是目前比較流行的關系數(shù)據(jù)庫管理系統(tǒng),廣泛應用于網(wǎng)站的后臺數(shù)據(jù)庫。ASP與SQL Server數(shù)據(jù)庫的組合是構建商務網(wǎng)站的一種解決方案。
2 ASP實現(xiàn)批量導入Excel工作表
下面以筆者開發(fā)的一套手機管理系統(tǒng)為例,介紹如何將Excel文件中保存的手機入庫信息導入到網(wǎng)站后臺數(shù)據(jù)庫的實現(xiàn)過程。這里以SQL Server作為網(wǎng)站的后臺數(shù)據(jù)庫。
2.1 將需要導入的Excel文件上傳到網(wǎng)站目錄。上傳的目的主要是為了更方便地讀取Excel文件的內(nèi)容。筆者開發(fā)的思路是使用ASP連接Excel文檔,打開指定的工作表,讀取Excel工作表中的記錄,再寫入到SQL Server數(shù)據(jù)庫中。上傳文件的實現(xiàn),這里就不詳細介紹,可以使用組件。假設上傳到網(wǎng)站根目錄的excel_up文件夾。
上傳入庫信息的網(wǎng)頁“pl_phone_lr.asp”的界面如下圖1所示。
■
在開發(fā)的時候,我們先向客戶要了一個手機入庫信息電子表格,和客戶一起商量了需要導入的數(shù)據(jù)的格式,有哪些字段,字段的數(shù)據(jù)類型,字段大小等。具體格式要求如下圖2所示。
■
其中手機串號為15位數(shù)字字符,工作簿文件的命名沒有要求,表的名為固定為“入庫細表”,這個很重要,不能改變,不然后面的程序找不到要讀取的表名。
2.2 設計Excel文檔導入到SQL Server數(shù)據(jù)庫的程序。
①圖1的界面,瀏覽找到需要上傳的文件后,按下“開始上傳”按鈕提交表單,網(wǎng)頁跳轉到如下圖3所示的網(wǎng)頁(upload.asp)。
■
此網(wǎng)頁文本框中保存了上傳后工作簿的文件名,按下“轉換到數(shù)據(jù)庫”按鈕,將提交到exceltosql.asp頁面處理。
②exceltosql.asp頁面負責讀取Excel工作表的內(nèi)容,并寫入SQL Server數(shù)據(jù)庫。實現(xiàn)過程并不復雜,關鍵是使用ASP連接上Excel工作簿,把工作簿文檔也當做數(shù)據(jù)庫來訪問,只是連接的代碼不同而已。連接Excel工作簿代碼如下:
<%
source1=server.MapPath("excel_up")&"/"&request("filename") '獲取上傳文件的路徑信息
myConn_Xsl="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &source1& ";Extended Properties=Excel 8.0" '連接Excel工作簿的字符串
xlsconn.open myConn_Xsl? '打開Excel工作簿連接
sql="select * from [入庫細表$] where 串號<>'' "? '定義讀取入庫細表的sql語句
3 ASP實現(xiàn)導出查詢數(shù)據(jù)到Excel工作表
對于一個信息管理系統(tǒng)來說,數(shù)據(jù)導入之后,我們需要查詢各種信息,并且生成報表打印輸出。例如手機管理系統(tǒng)中,手機統(tǒng)計表的格式如圖4所示。
■
ASP的頁面中,查詢出來的數(shù)據(jù)用表格的形式進行布局,我們可以選定內(nèi)容復制到Excel表中,這樣比較麻煩。其實,我們在ASP的查詢頁面中,只要加“<%response.ContentType = "application/vnd.ms-excel"%>”這樣一行代碼,就可以把查詢的內(nèi)容輸出到Excel表中。
4 結語
本文介紹的ASP技術實現(xiàn)Excel數(shù)據(jù)導入導出數(shù)據(jù)庫的方法,實現(xiàn)原始數(shù)據(jù)到網(wǎng)站數(shù)據(jù)庫的自動導入,避免了大量數(shù)據(jù)重新輸入的問題,提高了管理人員的工作效率,查詢出來的數(shù)據(jù)導出到Excel工作表中,用戶可以自己修改報表格式進行輸出打印。
參考文獻:
[1]徐輝.電子商務網(wǎng)站導入Excel數(shù)據(jù)的設計與實現(xiàn)[J].商場現(xiàn)代化,2008.10.
[2]郭永亮,鄧強.在JSP中實現(xiàn)查詢并導入Excel的通用程序[J].甘肅冶金,2006.3.
[3]李玉梅.動態(tài)WEB數(shù)據(jù)庫應用研究[D].昆明理工大學,2001.
作者簡介:鐘貞魁(1981-),男,江西興國人,江西環(huán)境工程職業(yè)學院,副教授,研究方向:軟件工程,網(wǎng)站設計。