如何在ASP中通過ODBC調用Excel中的資料

來源:互聯網
上載者:User
excel|odbc|資料 http://www.chinaasp.com/

在ASP中通過ODBC調用Excel中的資料方式和普通的通過ODBC調用資料庫的方式有
一些不同的地方。下面將介紹如何通過ODBC在ASP中使用Excel的資料。
在使用的過程中,要注意的是你需要使用的ODBC驅動為:Microsoft ODBC Driver for Excel.
下面給出一個例子來具體說明如何調用的過程:
1。在Excel的試算表中建立一個叫Range的表單
a)在Excel檔案ADOtest.xls中的sheet1裡隨便輸入下面的測試資料:
column1 column2 column3
rr this 15
bb test 20
ee works 25
注意事項
如果你的Excel試算表中某一列同時包含了文本和數位話,那麼Excel的ODBC驅動將不能夠正常
處理這一行的資料類型,你必須要保證該列的資料類型一致。:
i.Microsoft OLE DB Provider for ODBC Drivers error '80040e21'
The request properties can not be supported by this ODBC Driver.
ii.Microsoft OLE DB Provider for ODBC Drivers error '80004005'
The query is not updateable because it contains no searchable columns to use as a
hopeful key.
iii.Microsoft OLE DB Provider for ODBC Drivers error '80004005'
Query based update failed. The row to update could not be found.
b)使用滑鼠選中你的資料所在的所有行和列
c)從菜單中選擇Insert\Name\Define命令.
d)輸入myRange1,然後單擊OK退出
注意事項
i)ADO假設Excel中的第一行為欄位名.所以你定義的範圍中必須要包括第一行的內容
ii)Excel中的列名(即欄位名)不能夠包含數字. Excel的驅動在遇到這種問題時就會出錯的。
例如你的列名名為“F1”
e)建立一個ODBC系統DSN指向這個ADOTest.xls檔案:(這個過程我就不詳細說了)
注意事項
i)DSN中要選擇Access97版本
ii)在NT中設定好匿名帳號對該試算表檔案相應的存取權限
iii)如果你的使用權限設定不正確的話,有可能會得到如下出錯資訊:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Excel Driver] The Microsoft Jet database engine
cannot open the file '(unknown)'. It is already opened exclusively
by another user, or you need permission to view its data.
f)最後一步,就是在ASP中調用這個ODBC,代碼如下:
<%@ LANGUAGE="VBSCRIPT" %>
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "ADOExcel"

Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.ActiveConnection = objConn
objRS.CursorType = 3
objRS.LockType = 2
objRS.Source = "Select * from myRange1"
objRS.Open
%>
<br>
<%
Response.Write("Original Data")
Response.Write("<TABLE><TR>")
For X = 0 To objRS.Fields.Count - 1
Response.Write("<TD>" & objRS.Fields.Item(X).Name & "</TD>")
Next
Response.Write("</TR>")
objRS.MoveFirst
While Not objRS.EOF
Response.Write("<TR>")
For X = 0 To objRS.Fields.Count - 1
Response.write("<TD>" & objRS.Fields.Item(X).Value)
Next
objRS.MoveNext
Response.Write("</TR>")
Wend
Response.Write("</TABLE>")
objRS.MoveFirst
objRS.Fields(0).Value = "change"
objRS.Fields(1).Value = "look"
objRS.Fields(2).Value = "30"
objRS.Update
Response.Write("<br>Data after the update")
Response.Write("<TABLE><TR>")
For X = 0 To objRS.Fields.Count - 1
Response.Write("<TD>" & objRS.Fields.Item(X).Name & "</TD>")
Next
Response.Write("</TR>")
objRS.MoveFirst
While Not objRS.EOF
Response.Write("<TR>")
For X = 0 To objRS.Fields.Count - 1
Response.write("<TD>" & objRS.Fields.Item(X).Value)
Next
objRS.MoveNext
Response.Write("</TR>")
Wend
Response.Write("</TABLE>")
objRS.Close
Set objRS = Nothing
objConn.Close



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.