ASP读取EXCEL数据

   把EXCEL当成数据库来读要有很严格的格式限制,还会出现很多问题...
'===================
'Ⅰ)将Excel97或Excel2000生成的XLS文件(book)看成一个数据库,其中的每一个工作表(sheet)看成数据库表
'Ⅱ)ADO假设Excel中的第一行为字段名.所以你定义的范围中必须要包括第一行的内容
'Ⅲ)Excel中的行标题(即字段名)不能够包含数字. Excel的驱动在遇到这种问题时就会出错的。例如你的行标题名为"F1"
'Ⅳ)如果Excel表中某一列同时包含了文本和数字的话,那么Excel的ODBC驱动将不能够正常处理这一行的数据类型,你必须要保证该列的数据类型一致(加入预设符号强制转成文本,后台再作处理)
'Ⅴ)日期型时,整列不能有空格,否则读不出
'============================攻略:===============
1、通过filefield获得文件
2、验证.xls文件
3、建立连接
'建立excel连接
set excelconn=server.createobject("adodb.connection")
strAddr = Server.MapPath(uploadpath&filename)
'输出源文件名 Response.Write "源文件:"&strAddr&""
excelconn.open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & strAddr
     '建立excel记录集
set excelrs=server.createobject("adodb.recordset")
sql="select * from [Sheet1$]" excelrs.open sql,excelconn,1,1 ............   excelrs.close()
     set excelrs=nothing
     excelconn.Close()
set excelconn=nothing
================================
<%Option Explicit%>
<html>
<head>
<title>操纵Excel</title>
</head>
<body>
<h2 align="center">显示Excel文件示例</h2>
<table border="1" width="90%" align="center">
<tr align="center" bgcolor="#E6E6E6">
<td>学号</td><td>姓名</td><td>数学</td><td>语文</td><td>英语</td><td>总分</td>
</tr>
<%
'建立Connection对象
Dim db,rs,strSql
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Excel Driver (*.xls)};Dbq=" & Server.MapPath("Mark.xls")
'打开记录集,表名一定要以"[表名$]"的格式
strSql="Select * From [Sheet1$]"
Set rs=db.Execute(strSql)
'循环读取所有行
Do While Not rs.EOF
Response.Write "<tr align='center'>"
Response.Write "<td>" & rs("学号") & "</td>"
Response.Write "<td>" & rs("姓名") & "</td>"
Response.Write "<td>" & rs("数学") & "</td>"
Response.Write "<td>" & rs("语文") & "</td>"
Response.Write "<td>" & rs("英语") & "</td>"
Response.Write "<td>" & rs("总分") & "</td>"
Response.Write "</tr>"
rs.MoveNext
Loop
'关闭对象
rs.Close
Set rs=nothing
db.Close
Set db=Nothing
%>
</table>
</body>
</html>
posted @ 2008-11-26 15:42  itecho  阅读(701)  评论(0编辑  收藏  举报