问题是导入时数字能导入,字母无法导入
例如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
%>

解决方案 »

  1.   

    excel文件导入数据,提供这个功能给用户该三思,因为不可靠excel文件的版本和格式都没有一个特定的标准,经常会不成功,使用ado读取更是如此,如果单元格中某些是字符,某些是数字,则某些单元格的数据就会丢失(不一定是丢失字母),偶来CSDN2年,多次见到谈到此问题,没有特别好的解决办法,最多只能是调用excel类库改写一些文件,把所有单元格该为文本类型所以,提供这个功能给用户必须说明:要求格式必须标准
      

  2.   

    问题解决了,只要改成:
    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