在网站建设的数据库设计中,经常需要将excel中的数据导入到access中(前提是在access中的表已经建好),现在做以下示例:
dim conndim conn2set 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
sql = select * from [sheet1$] set rs = conn2.execute(sql)while not rs.eof sql = insert into xxx([a],,[c],[d]) values(& fixsql(rs(0)) &,& fixsql(rs(1)) &,& fixsql(rs(2)) &,& fixsql(rs(3)) &) conn.execute(sql) rs.movenextwend
conn.closeset conn = nothingconn2.closeset conn2 = nothing
function fixsql(str) dim newstr newstr = str if isnull(newstr) then newstr = else newstr = replace(newstr,,) end if fixsql = newstrend function
导入到sql server数据库中时,如果excel文件和数据库不在同一台服务器上时,请参考上面的代码。在同一机器上可以参考下面代码(不需要先把表建表,程序会自己动建表,用excel中的第一行数据做为表的字段名):
dim connset conn=createobject(adodb.connection)conn.open (driver=;server=localhost;uid=sa;pwd=sa;database=hwtemp;)sql = select * into newtable from opendatasource( microsoft.jet.oledb.4.0,data source=c:\book1.xls;user id=admin;password=;extended properties=excel 5.0)...[sheet1$] conn.execute(sql)
conn.closeset conn = nothing