小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

在ASP網(wǎng)頁中訪問Excel文件

 templater 2007-07-11
在ASP網(wǎng)頁中訪問Excel文件
Excel文件可以作為活動文檔(ActiveX Document)在活動文檔容器(ActiveX Document Container)中打開,而IE就是一個活動文檔容器,所以當(dāng)頁面中的鏈接指向一個Excel文件時,單擊此鏈接即可啟動Excel,最終將文件顯示在IE窗口中。這種方法雖然簡單,但存在不少缺陷:客戶機內(nèi)必須安裝Excel。在企業(yè)內(nèi)部網(wǎng)上還有可能做到,但Internet上就不現(xiàn)實了。訪問文檔時將啟動Excel,速度較慢。若覽器不是IE,則可能不是活動文檔容器,因此將不能正確顯示文件。
下面介紹一種在ASP文件中通過ADO訪問Excel文件的方法。----ADO是微軟發(fā)布的基于OLEDB技術(shù)的數(shù)據(jù)庫編程接口,通過ODBC驅(qū)動程序可以訪問多種不同格式的數(shù)據(jù)文件,其中包括Excel文件。要獲得Excel的ODBC驅(qū)動程序,可以通過安裝Office97,也可以去微軟的站點下載。正確安裝后在控制面板中會出現(xiàn)ODBC數(shù)據(jù)源管理器,打開它確認(rèn)在驅(qū)動程序頁中有Excel的驅(qū)動程序。
然后編寫B(tài)row.ASP程序,如下例所示。例中假設(shè)在同一目錄下有Excel文件01.xls,且包含名為sheet1的工作表,工作表的第一行為列標(biāo)題,以后為相應(yīng)的數(shù)據(jù)。
Brow.asp:
程序代碼:

<%
Const adOpenStatic = 3
Dim conn Dim rs ,dbPath Set conn = erver.CreateObject("ADODB.Connection") ‘ 生成實際路
dbPath=server.MapPath("01.xls") ‘ 驅(qū)動程序名稱必須與ODBC中的驅(qū)動程序名完全一致,包括空格
conn.Open "driver={Microsoft Excel Driver (*.xls)};dbq=" & dbPath Set rs = Server.CreateObject("ADODB.Recordset") ‘ 在工作表后加上$,同時必須在工作表名外加括號
rs.Open "[sheet1$]", conn, adOpenStatic
% >
< html >
< head >
< meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80" >
< meta name="GENERATOR" content="Microsoft FrontPage Express 2.0" >
< title > 瀏覽Excel數(shù)據(jù)表< /title >
< /head >
< body bgcolor="#FFFFFF" >
< h2 align="center" >Brow.asp - 瀏覽Excel數(shù)據(jù)表< /h2 >
< hr >
< %
Response.Write "< CENTER >< TABLE BORDER=1 >"
Response.Write "< TR BGCOLOR=#00FFFF >"
Response.WRITE "< TD >編號< /TD >" ‘ 顯示每列的標(biāo)題
For i=0 to rs.Fields.Count-1
Response.WRITE "< TD >" & rs.Fields(i).Name & "< /TD >"
Next

Response.Write "< /TR >" RecNo=1
‘ 顯示工作表中的所有數(shù)據(jù)
Do While Not rs.EOF
Response.Write "< TR > "
Response.Write "< TD >" & RecNo & "< /TD >"
‘顯示各列的數(shù)據(jù)
For i=0 to rs.Fields.Count-1
Response.WRITE "< TD >" & rs.Fields(i).Value & "< /TD >"
Next

Response.Write "< /TR >"
rs.MoveNext RecNo=RecNo+1 Loop
Response.Write "< /TABLE >< /CENTER >"
% >
< hr > < /body > < /html >

ODBC 將指定的工作表的第一行各列的內(nèi)容識別成字段名,以下各行作為相應(yīng)的數(shù)據(jù),若打開的工作表中數(shù)據(jù)將沒有按此規(guī)律出現(xiàn),則需要指定范圍。例如數(shù)據(jù)塊出現(xiàn)在B2:V28范圍之內(nèi),即B2:V2為各字段名,以下為數(shù)據(jù),則應(yīng)使用以下語句打開RecordSet:rs.open"[sheet1$B2:V28]",conn,adOpenStatic
還可以用select語句選擇出指定區(qū)域內(nèi)的相應(yīng)列,例如:rs.open"select學(xué)號,姓名from[sheet1$B2,V28]",conn
使用以上方法訪問Excel文件速度非??欤驗樗恍枰獑覧xcel,同時無論客戶端是什么瀏覽器都能看到文件內(nèi)容。但要注意以下兩點:Excel的ODBC驅(qū)動程序不支持對Excel文件的添加和刪除。有些Excel中可以使用的工作表名ADO不支持,例如名為"123"的工作表就無法用上述方法打開。須與ODBC中的驅(qū)動程序名完全一致,包括空格
conn.Open "driver={Microsoft Excel Driver (*.xls)};dbq=" & dbPath Set rs = Server.CreateObject("ADODB.Recordset")
‘ 在工作表后加上$,同時必須在工作表名外加括號

rs.Open"[sheet1$]", conn, adOpenStatic % >
< html >
< head >
< meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80" >
< meta name="GENERATOR" content="Microsoft FrontPage Express 2.0" >
< title > 瀏覽Excel數(shù)據(jù)表< /title >
< /head >
< body bgcolor="#FFFFFF" >
< h2 align="center" >Brow.asp - 瀏覽Excel數(shù)據(jù)表< /h2 >
< hr > < %
Response.Write "< CENTER >< TABLE BORDER=1 >"
Response.Write "< TR BGCOLOR=#00FFFF >"
Response.WRITE "< TD >編號< /TD >" ‘ 顯示每列的標(biāo)題
For i=0 to rs.Fields.Count-1
Response.WRITE "< TD >" & rs.Fields(i).Name & "< /TD >"
Next

Response.Write "< /TR >" RecNo=1 ‘ 顯示工作表中的所有數(shù)據(jù)

Do While Not rs.EOF Response.Write "

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多