sql server 从excle文件中导入数据

一、Excel文件在sqlserver数据库的本地 

1、启用Ad Hoc Distributed Queries的方法
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
2、从数据库将数据导入到Excel
insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=D:\Excel文件 名.xls',Sheet1$)select * from 数据库表名
3、从Excel导入到数据库中
insert into 数据库表名 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=D:\Excel文件名.xls',Sheet1$)

/*
说明:
Microsoft.Jet.OLEDB.4.0:数据库提供程序,连接驱动
Data Source:excel的路径
User ID:excel用户名,默认为Admin
Password:密码。默认为空
Extended properties:excel版本
[Sheet1$]:Sheet1表单名称
*/

 

/*

--将查询结果插入其他表中(注意字段个数必须一致,并且一一对应)
insert into 表名(字段1,字段2,字段3,字段4) 
select 人员,时间,内容,结果 from OpenDataSource('Microsoft.Jet.OLEDB.4.0',

'Data Source=d:\log.xls;User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet1$] 

 

*/


如果是32位的操作系统,32位的sqlServer如上操作就不存在什么问题了,但如果是64位的操作系统和sqlServer以上的做法就行不通了,而且会报错
错误信息如下:
消息 7302,级别 16,状态 1,第 1 行
无法创建链接服务器 '(null)' 的 OLE DB 访问接口 'MICROSOFT.JET.OLEDB.4.0' 的实例。
原因:
在64SQL Engine中已经不提供jet.oledb.4.0的驱动了
解决方法:
下载一个ACE.Oledb.12.0 fo  http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=c06b8369-60dd-4b64-a44b-84b371ede16d
完成后改写语句:select * from OpenRowSet
('Microsoft.ACE.OLEDB.12.0',
'Excel 8.0;HDR=Yes;Database=c:/test.xls',
[Sheet1$]
)
这样就搞定了。

 

    1. 如果您是应用程序用户,请查阅您的应用程序文档,了解有关如何使用相应驱动程序的详细信息。
    2. 如果您是使用 OLEDB 的应用程序开发人员,请将 ConnectionString 属性的 Provider 参数设置为“Microsoft.ACE.OLEDB.12.0”。

      如果要连接到 Microsoft Office Excel 数据,请根据 Excel 文件类型添加相应的 OLEDB 连接字符串扩展属性:

      文件类型(扩展名)                                             扩展属性
      ---------------------------------------------------------------------------------------------
      Excel 97-2003 工作簿 (.xls)                                  “Excel 8.0”
      Excel 2007-2010 工作簿 (.xlsx)                             “Excel 12.0 Xml”
      启用宏的 Excel 2007-2010 工作簿 (.xlsm)     “Excel 12.0 宏”
      Excel 2007-2010 非 XML 二进制工作簿 (.xlsb)     “Excel 12.0”

    3. 如果您是使用 ODBC 连接到 Microsoft Office Access 数据的应用程序开发人员,请将连接字符串设置为“Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=path to mdb/accdb file”
    4. 如果您是使用 ODBC 连接到 Microsoft Office Excel 数据的应用程序开发人员,请将连接字符串设置为“Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=path to xls/xlsx/xlsm/xlsb file”

 

posted @ 2017-03-05 13:58    阅读(191)  评论(0编辑  收藏  举报