当前位置:数据库 > Excel >>

Excel导入数据的存储过程出错, 怎么办?

存储过程如下: create procedure p_importExcel @tableName varchar(200), --表名 @tableFieldList varchar(2000), --表字段列表 @excelPath varchar(2000), --excel文件的全路径,包括路径和文件名 @sheetName varchar(200), --工作表名 @excelFieldList varchar(2000) --excel工作表的字段列表 as declare @sql varchar(8000) set @sql='insert into '+@tableName+'('+@tableFieldList+') ' +' select '+@excelFieldList +' from openrowset(''Microsoft.Jet.OLEDB.4.0'',''Excel 8.0;Database='+@excelPath+';HDR=yes;IMEX=1;'',' +' ''select '+@excelFieldList+' from ['+@sheetName+'$]'')' print(@sql) exec(@sql) return 错误: 它将Excel中的纯字符串(如手机号 12345687895),导入数据库后,错误地转换为科学计数法(如 1.23456e+010). 我不想让它转换.
补充:急急急!!!!!!!!!! 


回复2L: 将设置单元格格式设置为文本,然后输入是可以的, 但要导入的Excel是不可能一个单元一个单元的重新输入. 即使将Excel的单元格全设置为文本(而不重新输入)也一样会出错. 大概是Microsoft.Jet.OLEDB进行了错误的转换. 如果将手机号写为012345687895(注意多加了一个0)就不会错误转换. 用什么参数或函数限定Microsoft.Jet.OLEDB转换呢? 能不能讲讲openrowset函数provide_string的所有参数及其用法. 

回复3L: 我就是不知如何转换, 才问的. 帮写出来吧
答案:你试试在你想要输入数字的单元格里点击右键,选择‘设置单元格格式’不要用常规,用文本就可以了    必须先改用文本在输入数字
其他:再来一遍 select '+@excelFieldList
在这里对字段进行转换,以适应表里字段定义 

上一个:access 怎样打开和关闭Excel 文件
下一个:在协同工作中07Access用什么可以把它导入Excel中,excel和Access同时更新

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,