例如excel里是这样的:
a b c
1 1w 2w
2 3 4
l m n
导入到access时是这样的:
空 空 空
空 空 空
2 3 4
空 空 空
主要是数据类型的问题,如果在excel里将列设置为文本,就能够全部导入.
但是在asp中怎么写呢?
代码如下:
<%
dim conn
dim conn2
set conn=CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Data Source=D:\excel-daoru\test.mdb"
set conn2=CreateObject("ADODB.Connection")
conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Extended properties=Excel 8.0;Data Source=D:\excel-daoru\book1.xls"
sql = "SELECT * FROM [Sheet1$]"
set rs = conn2.execute(sql)
while not rs.eof
sql = "insert into ziyuan([lianxi],[jianchen],[33]) values('"& fixsql(rs("0")) &"','"& fixsql(rs(1)) &"','"& fixsql(rs(2)) &"')"
conn.execute(sql)
rs.movenext
%>
<%
wend
conn.close
set conn = nothing
conn2.close
set conn2 = nothing
function fixsql(str)
dim newstr
newstr = str
if isnull(newstr) then
newstr = ""
else
newstr = replace(newstr,"'","''")
end if
fixsql = newstr
end function
%>
问题解决了,只要改成:
conn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=;Extended properties='Excel 8.0;IMEX=1';Data Source="&Server.mapPath("book1.xls")
就可以了,最重要的是IMEX=1