用ADO对Excel的数据查询

** 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 内容的代码

 1 
 2
 3Dim conn 
 4
 5Dim StrConn 
 6
 7Dim rs 
 8
 9Dim Sql 
10
11Set conn=Server.CreateObject("ADODB.Connection") 
12
13StrConn="Driver={Microsoft Excel Driver (*.xls)};"&_ 
14
15"DriverId=790; DBQ="& Server.MapPath("Students.xls") 
16
17conn.Open StrConn 
18
19Set rs = Server.CreateObject("ADODB.Recordset") 
20
21Sql="select * from [Sheet1$]" 
22
23rs.Open Sql,conn,2,2 
1<center>
2<table border="1">
3<tr>

for i=0 to rs.Fields.Count-1

1
2<td bgcolor="#0099FF">```
3=rs(i).Name
4```</td>

next

1
2</tr>

do while Not rs.EOF

1
2<tr>

for i=0 to rs.Fields.Count-1

1
2<td>```
3=rs(i)
4```</td>

next

1
2</tr>

rs.MoveNext

Loop

rs.close

set rs=nothing

StrConn.close

set StrConn=nothing

1
2</table></center>

3 、运行结果

Published At
Categories with 数据库类
comments powered by Disqus