-=====-
exceltosql.asp
<%@LANGUAGE="VBscript" CODEPAGE="936"%>
<%'sql 连接驱动
dim conn,connstr,time1,time2,mdb
time1=timer
'如果是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:\!kelink\autowapSQL\test\abc.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('资料导入成功!\n共有"&cc&"条数据导入');history.go(-1)</script>"
%>
将Excel文件(例如book.xls)看成一个数据库,其中的每一个工作表(sheet)看成数据库表。假设Excel中的第一行为字段名,所以你定义的范围中必须要包括第一行的内容,记录集的第一个指针是从Excel表的第二行开始的。所以注意数据的次序性和是否存在。