ASP+ADO存取EXCEL檔案
作者:未知 来源:未知 添加时间:2006-5-21 16:31:30雖然 ASP / ADO 支援多個使用者的同時存取, 但很可惜的是 Excel 試算表並不支援, 因此這個方法的最大缺點就是不支援多個使用者的同時存取, 由於來信詢問的網友相當多, 還是要為大家介紹
名稱範圍
首先, 請先創造一個 Excel 檔案, 就叫做 adoexcel.xls 吧! 欄位如下:
| Column1 | Column2 | Column3 |
| aa | asp | 11 |
| bb | ado | 22 |
| cc | excel | 33 |
在同一欄中的資料類型必須一致, 請不要同時包含文字及數字, 否則 Excel ODBC Driver 將無法正確的辨認該欄位的資料類型, 接下來, 在工作表中創造一個名稱範圍 (Named Range):
- 選取你的資料所在的區域
- 在工具列中選擇插入, 指向名稱然後點選定義
- 輸入這個名稱範圍的名稱, 假設為 myRange, 按確定
ADO 會假設第一列為欄位名稱, 因此在選取名稱範圍時注意要包含第一列, 此外欄位名稱不能為數字, 否則會導致 Excel ODBC Driver 對應資料錯誤
創造系統資料來源名稱
- 在控制台中點選ODBC資料來源圖示
- 點選 系統資料來源名稱 , 按 新增
- 選擇 Microsoft Excel Driver (*.xls) , 按完成
- 輸入資料來源名稱, 假設為 ADOExcel
- 按 Select Workbook... , 選取先前所創造的 Excel 檔案 adoexcel.xls
開啟 Recordset
暖身運動作完了, 接下來我們來看看程式部分
<%
Set oConn = Server.CreateObject("Adodb.Connection")
ADOExcel 是你所創造的 DSN
oConn.Open "ADOExcel"
Set oRs = Server.CreateObject("Adodb.Recordset")
oRs.ActiveConnection = oConn
oRs.CursorType = 3
oRs.LockType = 2
oRs.Source = "select * from myRange"
oRs.Open
Response.Write "
| " & oRs.Fields.Item(i).Name & " | "
| " & oRs.Fields.Item(i).Value & " | "