Heim >Datenbank >MySQL-Tutorial >SQL导入Excel文件
SQL导入Excel文件 如果表已存在,SQL语句为: insert into aa select * from OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=D:/OutData.xls;Extended Properties=Excel 8.0')...[sheet1$] 其中,aa是表名,D:/OutData.xls是excel的全路径sheet1后
SQL导入Excel文件
如果表已存在,SQL语句为:
insert into aa select * from OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=D:/OutData.xls;Extended Properties=Excel 8.0')...[sheet1$]
其中,aa是表名,D:/OutData.xls是excel的全路径 sheet1后必须加上$
如果表不存在,SQL语句为:
SELECT * INTO aa FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=D:/OutData.xls;Extended Properties=Excel 8.0')...[sheet1$]
其中,aa是表名,D:/OutData.xls是excel的全路径 sheet1后必须加上$,outdata.xls必须在SQL电脑上
可能会发生的异常:
如果发生“链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。”异常可能是excel文件未关闭.
如果发生“不能将值 NULL 插入列 'Grade',表 'student.dbo.StuGrade';列不允许有空值。INSERT 失败。
语句已终止。”异常,则可能是excel文件与数据库表中的字段不匹配
以上操作的是office 2003,如果要操作office 2007则需采用如下方式
如果表已存在,SQL语句为:
insert into aa select * from OPENDATASOURCE('Microsoft.Ace.OLEDB.12.0',
'Data Source=D:/OutData.xls;Extended Properties=Excel 12.0')...[sheet1$]
其中,aa是表名,D:/OutData.xls是excel的全路径 sheet1后必须加上$
如果表不存在,SQL语句为:
SELECT * INTO aa FROM OPENDATASOURCE('Microsoft.Ace.OLEDB.12.0',
'Data Source=D:/OutData.xls;Extended Properties=Excel 12.0')...[sheet1$]
其中,aa是表名,D:/OutData.xls是excel的全路径 sheet1后必须加上$
如果发生“链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。”异常可能是excel文件未关闭.
如果发生“不能将值 NULL 插入列 'Grade',表 'student.dbo.StuGrade';列不允许有空值。INSERT 失败。
语句已终止。”异常,则可能是excel文件与数据库表中的字段不匹配
以上操作的是office 2003,如果要操作office 2007则需采用如下方式
另外,,还要对一些功能进行配置:
1、打开SQL Server 2005外围应用配置器,选择“功能的外围应用配置器”,选中“启用OPENROWSET或OPENDATASOURCE支持”,点击确定。
2、在C:/WINDOWS目录下将temp文件夹的安全选项卡中,在用户或组名称中,选择“SQLServer2005ReportingServicesWebServiceUser$PC17$MSSQLSERVER(PC17/SQLServer2005ReportingServicesWebServiceUser$PC17$MSSQLSERVER”用户,将此用户的写入,修改权限选中。点击确定。(设置它是因为将此将excel文件读入SQL数据库时,是在C:/WINDOWS/temp下建立了一个临时文件,所以需要将此文件夹的SQLServer2005权限设置为可写入的。如果使用的是管理员帐户,则需要不需此项设置。因为管理员有读写的权限。)
posted on