日期:2014-05-17  浏览次数:20541 次

Excel 导入 SQLServer 的怪异问题
Excel文件是从别的系统里导出来的,通过存储过程导入SQL。

exec('insert into T_Certificate 
(Name,Sex,IDCard,Certificate,S1,S1Time,S2,S2Time,S3,S3Time) select 姓名,性别,身份证,准考证号,科目1,考试时间1,科目2,考试时间2,科目3,考试时间3 from OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=YES;DATABASE=' + @ExcelFileName +''','+ @ExcelTableName +')')


导入时提示列“考试时间3”不存在。几经测试后发现把Excel文件打开后点一下保存按钮,不用做任何更改,就可以导入了。

有人知道这是什么原因吗?

------解决方案--------------------
你给我18分嘛,求求你了
------解决方案--------------------
楼上的是在要分啦!
楼主,你说是“Excel文件是从别的系统里导出来的”,看看前者系统保存上面是不是出了问题。
------解决方案--------------------
那的确挺诡异,你直接用导入导出向导来导入会有问题吗?不打开点保存的话。
------解决方案--------------------
用记录本打开那个EXCEL文件,看看是不是真的是EXCEL格式。
------解决方案--------------------
EXCEL格式问题
------解决方案--------------------
呵呵。很好啦。
------解决方案--------------------
确认excel文件是否是打开模式,即有多个打开该文件的程序使用?