ASP 将EXCEL导入到ACCESS详细解读…

时间:2022-11-16 15:59:57


z_excel.asp

这一页的功能是将z_file.asp传送来的表名获取,同时将此excel表中的数据导入到access数据库中的users表中.字段对应.

z_excel.asp全部代码如下

____________代码开始_________

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>添加产品价格入库</title>
</head>
<%
dim Filename
dim FilePath
dim Excel
dim Data
Data="Databases/data.mdb"
Filename=trim(request("excel_name"))
FilePath="excel/"
Excel=FilePath+Filename

dim conn '定义一个连接变量
dim conn2 '定义第二个连接变量
'On Error Resume Next
Server.ScriptTimeOut = 999999 '超时时间
set conn=CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source="&Server.MapPath(Data) '要导入的数据库名称

set conn2=CreateObject("ADODB.Connection")
conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Extended properties=Excel 5.0;Data Source="&Server.MapPath(Excel) '要导入的EXCEL表名称Fang.xls
'-----------------------------------------------------------------------------------------------------------------
'这里要说明的是,数据库和Excel表和该文件必须在网站同一目录里
'-----------------------------------------------------------------------------------------------------------------
sql_ex= "SELECT * FROM [Sheet1$]" '要导入的Excel数据里面的表的名称,后面一定要加$
set rs = conn2.execute(sql_ex)
while not rs.eof
sql = "insert into users([userid],[password]) values('"& fixsql(rs(0)) &"','"& fixsql(rs(1)) &"')"
'其中的zhenya是要导入的目标表,其后的country,mobile是zhenya表中的字段名,但是要和后面的fixsql(rs(数字))要对应!
'response.write sql
'response.end
conn.execute(sql)
rs.movenext
Response.Write "正在插入 "&sql&"<Br>"
'在这里输出执行的语句,可以去掉的!
Response.Flush
wend
conn.close
set conn = nothing
conn2.close
set conn2 = Nothing

If Err = 0 Then
Response.Write "导入成功"
Else
Response.Write "导入失败!"
End If

function fixsql(str)
dim newstr
newstr = str
if isnull(newstr) then
newstr = ""
else
newstr = replace(newstr,"'","''")
end if
fixsql = newstr
end Function
%>
<body>

</body>
</html>

________________代码结束_______________

z_excel.asp的第二种导入数据库的方式.以下代码可以实现的功能是比对ACCESS数据库中和EXCEL表中的数据,如果数据和重复,则不重复添加.

完整个代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>添加产品价格入库</title>
</head>
<%
dim Filename
dim FilePath
dim Excel
dim Data
Data="Databases/data.mdb"
Filename=trim(request("excel_name"))
FilePath="excel/"
Excel=FilePath+Filename
On Error Resume Next
response.Write(Excel)
response.Write(Data)
dim conn
dim conn2
set conn=CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Extended properties=Excel 5.0;Data Source="&Server.MapPath(Excel)
set conn2=CreateObject("ADODB.Connection")
conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source="&Server.MapPath(Data)
Set rs=Server.CreateObject("ADODB.Recordset")
sql="Select * from [Sheet1$]"
rs.Open sql,conn,1,1
Set dbrs=Server.CreateObject("ADODB.Recordset")

Do While Not rs.eof
sql="select * From users where [userid]='"+rs("userid")+"'"

dbrs.Open sql,conn2,1,3
If dbrs.eof Then
dbrs.addnew
dbrs("userid")=rs("userid")
dbrs("password")=rs("password")
dbrs.update
dbrs.close
End If
rs.MoveNext
Loop
rs.close
%>
<body>

</body>
</html>