日期:2014-05-18  浏览次数:20526 次

如何把EXCEL中数据导入到SQL SERVER中去呀?
如何把EXCEL中数据导入到SQL   SERVER中去呀?

------解决方案--------------------
insert tablename(c1, c2,c3)--定义列
select a,b,c
from openrowset( 'Microsoft.Jet.OLEDB.4.0 ', 'EXCEL 8.0;HDR=YES;User id=admin;Password=;IMEX=1;
DATABASE=C:\temp.xls ', temp$)
------解决方案--------------------
try:
insert into mytest(序号,姓名,性别,系班别,出生年月,政治面貌,籍贯,违纪原因,受何处分,发文号,发文时间,备注)
select 序号,姓名,性别,系班别,出生年月,政治面貌,籍贯,违纪原因,受何处分,发文号,发文时间,备注 from
openrowset( 'Microsoft.Jet.OLEDB.4.0 ', 'Excel 8.0;database=F:\Documents and Settings\Administrator\桌面\2006.xls;HDR=Yes;IMEX=1 ', sheet1$)
--注意在2006.xls的工作表sheet1$中的第一行必须是这样:序号,姓名,性别,系班别,出生年月,政治面貌,籍贯,违纪原因,受何处分,发文号,发文时间,备注
--序号为单元格A1,姓名为单元格B1,...依此类推
------解决方案--------------------
1.两种显示方式的区别:
Select * From OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0 ', 'Excel 8.0;database=F:\Documents and Settings\Administrator\桌面\2006.xls;HDR=Yes;IMEX=1 ', 'select * from [sheet1$] ')
Select * From OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0 ', 'Excel 8.0;database=F:\Documents and Settings\Administrator\桌面\2006.xls;HDR=Yes;IMEX=1 ',sheet1$ ')

两种语句的显示结果可能不同,主要表现在列的显示次序上可能有所不同,使用第一种列的排列与EXCEL文件一致,第二种的列显示不同
------解决方案--------------------
在企业管理器里,有个TDS,是专门导数据的工具,可以选择不同的数据源导入导出,并且可以设置字段对导;可以试一下
------解决方案--------------------
我也有遇到过,你要这样操作:
mytest表中的
所有类型都为nchar(255),并且都要允许NULL值。
EXCEL把想要的表按列重新复制到新的EXCEL中再保存关闭。
怀疑你是EXCEL有多余列您没发现,mytest表中不允许Null值
再次核对你的每项列名是否有多打字符!

insert into mytest(序号,姓名,性别,系班别,出生年月,政治面貌,籍贯,违纪原因,受何处分,发文号,发文时间,备注)
select * from
openrowset( 'Microsoft.Jet.OLEDB.4.0 ', 'Excel 8.0;database=F:\Documents and Settings\Administrator\桌面\2006.xls;HDR=Yes;IMEX=1 ', sheet1$)

再执行,绝对不会有错!