程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> asp實現在web中顯示電子表格數據(一)顯示數據表格的應用

asp實現在web中顯示電子表格數據(一)顯示數據表格的應用

編輯:ASP技巧

在用ASP語言開發的Web數據庫應用程序中,ADO (ActiveX Data Objects) 已經成為非常流行的工具,而且對於真正的關系型數據庫,比如Oracle、SQL Server,它都不會有局限性。ADO能夠存取多種不同的數據格式,MS Excel電子數據表格就是其中之一。

   關於這個應用

   可供下載的例程代碼中包括一個ASP文件ReadX1.ASP,一個Excel文件TheWorkbook.xls。你也可以另外加入一些電子數據表文件。

   執行ReadXl.ASP頁面,將顯示出可用的電子數據表文件列表。選擇好一個文件,並提交表單後,你將會看到:

一個下拉菜單,其中是工作表名稱
一個下拉菜單,其中是命名的范圍
一個單元格范圍輸入框
第一個工作表的全部內容
  

   可以選擇工作簿文件中的另外一個工作表,或者輸入符合Excel格式的單元格范圍數值,比如:D20:E21 或者 Sheet3!F12:J22。注意:在ADO和ODBC驅動程序中,要用$符合替換分界符號!。

   實現步驟

   現在對這個應用程序已經有了初步的認識,下面開始討論ASP代碼,看看如何讀取電子數據表的數據,如何找到電子數據簿
(workbook)文件中可用的電子數據表(worksheet)和范圍,並看看實現文件列表選擇的技術。這裡假設你已經熟悉了編寫Html表單的技術,所以對此不做詳細介紹。

   基本條件

   下面將涉及到ADO對象、方法、屬性、收集和常量。在服務器上安裝IIS後,ADO就存在了,並且還有相關文檔,地址是http://YourServer/IisHelp/ado210.chm (版本2.1),或者http://YourServer/IisHelp/ado/docs/(老版本1.5)。如果需要升級ADO,可以從http://www.microsoft.com/Data/download.htm下載最新版本的MDAC工具包進行安裝。

   實現“文件列表選擇”使用到了內建的VBScript腳本對象,相關文檔可以查看http://YourServer/IisHelp/vbscript/htm/vbstoc.htm,如果想查看最新的文檔,請訪問http://msdn.microsoft.com/scripting
(版本5)。當然,在服務器端和客戶端,你都不需要安裝MS Excel。

   讀取電子數據表(Worksheet)數據

   通過ADO讀取電子數據表與讀取數據庫表的方法基本是一樣的。從下圖可以看到,電子數據表的行被稱作記錄Records,列被稱作字段FIElds。電子數據表或者單元格的范圍可以被看成表Tables,並按照記錄集recordsets進行存取。

SPReadsheet Database Html
  < table >
< tr >
< th >NameA< /th >
< th >NameB< /th >
< th >NameC< /th >
< /tr >< tr >
< td >1< /td >
< td >2< /td >
< td >3< /td >
< /tr >< tr >
< td >11< /td >
< td >12< /td >
< td >13< /td >
< /tr >
< /table >

   執行下面的步驟,從數據庫表中讀取數據並顯示:

連接數據庫(同樣:打開數據簿文件)
讀取記錄集recordset(同樣:讀取一定范圍的單元格)
循環每一個記錄(同樣:每一行),經過格式化,顯示
   建立ADO連接

   在連接數據庫或者打開文件前,需要了解一些信息。其中只要是設置名叫DSN的ODBC驅動,但為每一個數據表都建立這樣的ODBC驅動,是非常麻煩的,因為這需要在服務器的控制台上通過“控制面板/ODBC設置”手工完成。

   幸好,ASP提供了替代DSN的其他方法,它可以非常容易地在運行時建立連接。比如,字符串“DRIVER={Microsoft Excel Driver?*.xls)};ReadOnly=1;DBQ=C:dirfile.xls",表示了替代DSN打開文件c:dirfile.xls,因此通過這種方法僅僅需要提供給ASP程序一個文件名即可。執行下面的代碼,將從表單中讀取文件名,然後轉換為全路徑,接著生成連接字符串,最後建立並打開這個連接。

vXlFile = Request("XlBook")
vXlFilePath = Server.MapPath(vXlFile) ' assumes file in current directory
vConnString = "DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=1;DBQ=" & _
              vXlFilePath
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open vConnString
   如果想查看更多的非DSN連接信息,請打開Windows或者NT System目錄下的幫助文件Odbcjet.hlp。

   讀取記錄集

   連接上電子數據簿文件後,讀取一定范圍的單元格數據就很簡單了。盡管不是必須的,但還是建議:用符合“[” 和 “]”包含住單元格的范圍定義。只所以這麼做,是以防在數據庫的操作中產生非法的符合。

vXlRange = Request("XlRange")
Set oRs = oConn.Execute("[" & vXlRange & "]")

   執行上面的語句,將返回記錄集對象,其中包括范圍內單元格的所有可用信息, 記錄集的數值和描述數據的元數據。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved