程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> 如何在ASP中通過ODBC調用Excel中的數據

如何在ASP中通過ODBC調用Excel中的數據

編輯:ASP技巧

    在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
[b]注意事項[/b]:
       如果你的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退出
[b]注意事項[/b]:
       i)ADO假設Excel中的第一行為字段名.所以你定義的范圍中必須要包括第一行的內容
       ii)Excel中的行標題(即字段名)不能夠包含數字. Excel的驅動在遇到這種問題時就會出錯的。
          例如你的行標題名為“F1”
e)新建一個ODBC系統DSN指向這個ADOTest.xls文件:(這個過程我就不詳細說了)
[b]注意事項[/b]:
    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
             Set objConn = Nothing
          %>

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