用ADO对Excel的数据查询
2024-07-21 02:08:50
供稿:网友
asp对excel的基本操作之查询数据
execl97/2000/xp是ms office办公软件的成员之一。在企业级应用当中,我们往往需要对execl进行操作,如读取execl里面的数据、往execl里插入数据等。
一、操作execl要注意的事项:
1、 服务器端office的配置
以ms windows2000+iis为例,要在服务器端安装有ms office的成员之一execl,office的版本没有特殊要求。
2、 服务器端分布式com的配置
执行“ dcomcnfg”命令,选择“应用程序”页的“microsoft execl 应用程序”—>“属性”—>“安全性”—>三个选项都选“使用自定义访问权限”,添加“everyone”权限。
二、首先,先将利用asp读取execl的数据(不建立dsn):
我们可以整个.xsl文件看作是一个数据库,sheet1、sheet2等分别看成一个独立的表,把a1、b1、c1、…n1看作表的字段。
--建立连接对象实例execlconn
set execlconn=server.createobject(“adodb.connection”)
--利用open 方法打开数据库
strconn="driver={microsoft excel driver (*.xls)};"&_
"driverid=790; dbq="& server.mappath("xls文件名")
conn.open strconn
--建立数据集对象rs并查询数据
set rs = server.createobject("adodb.recordset")
sql="select * from [sheet1$]"
rs.open sql,conn,2,2
具体例子:
1、建立一个表sheet1(数据库名为students)
studentid
姓 名
语 文
数 学
物 理
化 学
地 理
1
李雪青
83
84
76
95
66
2
冯江
87
96
82
100
81
3
吴小霞
76
43
37
60
82
4
邹亚汇
80
77
63
71
63
5
蔡海飞
89
63
92
86
67
2、查询并显示表sheet1内容的代码
<%
dim conn
dim strconn
dim rs
dim sql
set conn=server.createobject("adodb.connection")
strconn="driver={microsoft excel driver (*.xls)};"&_
"driverid=790; dbq="& server.mappath("students.xls")
conn.open strconn
set rs = server.createobject("adodb.recordset")
sql="select * from [sheet1$]"
rs.open sql,conn,2,2
%>
<center>
<table border="1">
<tr>
<%
for i=0 to rs.fields.count-1
%>
<td bgcolor="#0099ff"><%=rs(i).name%></td>
<%
next
%>
</tr>
<%
do while not rs.eof
%>
<tr>
<%
for i=0 to rs.fields.count-1
%>
<td><%=rs(i)%></td>
<%
next
%>
</tr>
<%
rs.movenext
loop
rs.close
set rs=nothing
strconn.close
set strconn=nothing
%>
</table></center>
3、运行结果