范例实现需要三个页面:提交表单excel.htm,处理exceltosql.asp。
excel.htm
<%@LANGUAGE="VB" CODEPAGE="936"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd> <html xmlns=http://www.w3.org/1999/xhtml> <head> < http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> </head> <body>
<form action="excelTosql.asp" method="post" name="form1" id="form1"> <p> <input name="bbb" type="file" id="bbb" size="30" /> </p> <p> <input type="submit" name="Submit" ="提交" /> </p> </form> </body> </html> -=====-
exceltosql.asp
'如果是sql 2000数据库,请用下面 连接驱动
connstr = "Driver={SQL Server};server=(local);uid=sa;pwd=123;database=test;" '如果是Access数据库,请用下面 连接驱动 'connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(mdb/jmgl2007.mdb) Set conn = Server.Createobject("ADODB.Connection")
conn.Open connstr If Err Then err.Clear Set Conn = Nothing Response.Write "数据库连接出错,请检查连接字串。" Response.End End If sub closedb()
conn.close set conn=nothing end sub dim aa aa=request.form("bbb") '获取传递过来的值 Dim StrConnect,cc
Dim objConn Dim rs Dim Sql cc=0 'Excel连接驱动 'response.Write(aa) 'response.end aaa="provider=Microsoft.Jet.OLEDB.4.0; Data Source="&aa&";Extended Properties=Excel 8.0" ' aaa="provider=Microsoft.Jet.OLEDB.4.0; Data Source='E:!kelinkutowapSQL estbc.xls';Extended Properties=Excel 8.0" set StrConnect=CreateObject("ADODB.Connection")
StrConnect.Open aaa Set objConn=CreateObject("ADODB.Connection") objConn.Open StrConnect '注意 表名一定要以下边这种格试 "[表名$]" 书写 Set rs = Server.CreateObject("ADODB.Recordset") Sql="select * from [sheet1$] " rs.Open Sql,StrConnect,2,2 IF rs.Eof And Rs.Bof Then response.Write("<script language='javascript'>alert ('没有资料可以导入!');history.go(-1)</script>") else Do While Not rs.EOF '列出表内信息 response.write"excel数据为: <br>" response.write ""&rs(0)&"-"&rs(1)&"-"&rs(2)&"" response.write"<br>" 'response.End() set rssql=server.CreateObject("adodb.recordset") '插入SQL2000里 rssql.Open "select * from abc",conn,1,3 rssql.AddNew if rs(0)<>"" then rssql(1)=rs(0) end if if rs(1)<>"" then rssql(2)=rs(1) end if if rs(2)<>"" then rssql(3)=rs(2) end if rssql.Update Rs.MoveNext Loop end if response.Write "<script language='javascript'>alert('资料导入成功! 共有"&cc&"条数据导入');history.go(-1)</script>" %> 将Excel文件(例如book.xls)看成一个数据库,其中的每一个工作表(sheet)看成数据库表。假设Excel中的第一行为字段名,所以你定义的范围中必须要包括第一行的内容,记录集的第一个指针是从Excel表的第二行开始的。所以注意数据的次序性和是否存在。 来自:http://www.9sino.com/web2/9sino2.asp?type=5&class_id=351&id=2908&jingru=888 |
loading