因为一个客户要用asp做一个excel导入到access的功能,最近查找了一下相关的文章,现总结了一下精华部分!
其实这个功能的原理很简单,因为excel本身就可以当做数据库的,所以只需要将excel作为数据源,再按需要将其中的字段保存到数据库中即可。
本文以access为例,上码!
dim conn
dim conn2
set conn=CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source=c:\book1.mdb"
'连接数据库
set conn2=CreateObject("ADODB.Connection")
conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Extended properties=Excel 5.0;Data Source=c:\book1.xls"
'连接excel表作为数据源,注意驱动要正确,因为每个版本的excel驱动都有不一样的,这里以2003为例
sql = "SELECT * FROM [Sheet1$]" '注意 [Sheet1$]中的Sheet1为你的excel表中的页名,要根据你的表中的页名一致
set rs = conn2.execute(sql) '将数据读取到记录集rs
while not rs.eof
sql = "insert into dataTableName([a],[b],[c],[d]) values(' "& fixsql(rs(0)) &","& fixsql(rs(1)) &"','"& fixsql(rs(2)) &"','"& fixsql(rs(3)) &"')"
conn.execute(sql)
rs.movenext
wend
conn.close
set conn = nothing
conn2.close
set conn2 = nothing
'修正数据,这里你可以自己改,这里只是将'换成''以免拼接sql时出错
function fixsql(str)
dim newstr
newstr = str
if isnull(newstr) then
newstr = ""
else
newstr = replace(newstr,"'","''")
end if
fixsql = newstr
end function