关于excel导入access问题

haojialu 2006-10-17 04:57:22
问题是导入时数字能导入,字母无法导入
例如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
%>
...全文
365 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
haojialu 2006-10-18
  • 打赏
  • 举报
回复
问题解决了,只要改成:
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
haojialu 2006-10-18
  • 打赏
  • 举报
回复
;楼上的,怎么把单元格改为文本类型啊??????????
Eddie005 2006-10-17
  • 打赏
  • 举报
回复
excel文件导入数据,提供这个功能给用户该三思,因为不可靠

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

所以,提供这个功能给用户必须说明:要求格式必须标准
haojialu 2006-10-17
  • 打赏
  • 举报
回复
有人说在字段前加"'",但是我怎么试都不行,不知道加在哪里

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧