一、Excel文件在sqlserver数据库的本地?
1、启用Ad Hoc Distributed Queries的方法 exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',251)">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$]?
*/
4、关闭Ad Hoc Distributed Queries的方法
reconfigure
如果是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?
r X64位的驱动,并把连接字符串Microsoft.jet.Oledb.4.0 更改为 Microsoft.ACE.OLEDB.12.0
下载地址:
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',251)">[Sheet1$]
)
这样就搞定了。
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|