« 在ASP存储过程的使用方法实例ASp表单项目的数据传送的例子 »

在ASP中通过ODBC调用Excel中的数据

....   没看懂,似乎有点错误,不过是5do8写的哎..
在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 
             Set objConn = Nothing 
          %>
原创文章如转载,请注明:转载自悠悠博客 [ http://www.ajaxstu.com/ ]

相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。