国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > ASP > 正文

asp實(shí)現(xiàn)在web中顯示電子表格數(shù)據(jù)(一)顯示數(shù)據(jù)表格的應(yīng)用

2019-11-18 22:33:02
字體:
供稿:網(wǎng)友
在用asp語言開發(fā)的Web數(shù)據(jù)庫(kù)應(yīng)用程序中,ADO (ActiveX Data Objects) 已經(jīng)成為非常流行的工具,而且對(duì)于真正的關(guān)系型數(shù)據(jù)庫(kù),比如Oracle、SQL Server,它都不會(huì)有局限性。ADO能夠存取多種不同的數(shù)據(jù)格式,MS Excel電子數(shù)據(jù)表格就是其中之一。

   關(guān)于這個(gè)應(yīng)用

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

   執(zhí)行ReadXl.asp頁(yè)面,將顯示出可用的電子數(shù)據(jù)表文件列表。選擇好一個(gè)文件,并提交表單后,你將會(huì)看到:

一個(gè)下拉菜單,其中是工作表名稱
一個(gè)下拉菜單,其中是命名的范圍
一個(gè)單元格范圍輸入框
第一個(gè)工作表的全部?jī)?nèi)容
  

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

   實(shí)現(xiàn)步驟

   現(xiàn)在對(duì)這個(gè)應(yīng)用程序已經(jīng)有了初步的認(rèn)識(shí),下面開始討論ASP代碼,看看如何讀取電子數(shù)據(jù)表的數(shù)據(jù),如何找到電子數(shù)據(jù)簿
(workbook)文件中可用的電子數(shù)據(jù)表(worksheet)和范圍,并看看實(shí)現(xiàn)文件列表選擇的技術(shù)。這里假設(shè)你已經(jīng)熟悉了編寫HTML表單的技術(shù),所以對(duì)此不做詳細(xì)介紹。

   基本條件

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

   實(shí)現(xiàn)“文件列表選擇”使用到了內(nèi)建的VBScript腳本對(duì)象,相關(guān)文檔可以查看http://YourServer/IisHelp/vbscript/htm/vbstoc.htm,如果想查看最新的文檔,請(qǐng)?jiān)L問http://msdn.microsoft.com/scripting
(版本5)。當(dāng)然,在服務(wù)器端和客戶端,你都不需要安裝MS Excel。

   讀取電子數(shù)據(jù)表(Worksheet)數(shù)據(jù)

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

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 >

   執(zhí)行下面的步驟,從數(shù)據(jù)庫(kù)表中讀取數(shù)據(jù)并顯示:

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

   在連接數(shù)據(jù)庫(kù)或者打開文件前,需要了解一些信息。其中只要是設(shè)置名叫DSN的ODBC驅(qū)動(dòng),但為每一個(gè)數(shù)據(jù)表都建立這樣的ODBC驅(qū)動(dòng),是非常麻煩的,因?yàn)檫@需要在服務(wù)器的控制臺(tái)上通過“控制面板/ODBC設(shè)置”手工完成。

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

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連接信息,請(qǐng)打開Windows或者NT System目錄下的幫助文件Odbcjet.hlp。

   讀取記錄集

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

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

   執(zhí)行上面的語句,將返回記錄集對(duì)象,其中包括范圍內(nèi)單元格的所有可用信息, 記錄集的數(shù)值和描述數(shù)據(jù)的元數(shù)據(jù)。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 哈尔滨市| 多伦县| 南岸区| 东阿县| 华阴市| 张家界市| 哈密市| 内丘县| 四子王旗| 乌兰察布市| 肥东县| 鹿邑县| 彰化县| 顺平县| 成安县| 积石山| 尖扎县| 尚义县| 长葛市| 交城县| 昭通市| 安溪县| 澄迈县| 原平市| 桑植县| 兰坪| 临澧县| 宽城| 绥滨县| 株洲市| 隆安县| 将乐县| 梁山县| 宁河县| 房山区| 从江县| 福州市| 阳东县| 英山县| 隆德县| 赞皇县|