SQLServer2008导入Excel遇到的问题

今天同事给客户处理基础物料信息,要把Excel中的几千行物料信息导入到数据库。觉得不是啥难事,写个SQL语句而已,没成想,实际一操作,出问题了。

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:ook1.xls', 'SELECT * FROM [Sheet1$]')

报错:因为 OLE DB 访问接口 'MICROSOFT.JET.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询

搜了下,原因是当前用的是64位的Win7, 但是安装的Office是32位的Office2007。为了以后也方便,干脆就卸了2007装64位的office2010。

找个64位的office2010也是个麻烦事,网上的链接都是指向WPS。好歹找了个,费了点时间卸载、安装、重启。

另外还参照网上的帖子装了个:AccessDatabaseEngine_X64.exe

修改下SQL语句,重新操作:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=D:mat.xls', 'SELECT * FROM [Sheet1$A:F]')

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=D:mat.xls', 'SELECT * FROM [Sheet1$]')

O了,没问题了:

参考: 

(1)http://tech.ddvip.com/2014-09/1409571606212952.html

(2)http://www.cnblogs.com/stublue/archive/2010/10/12/1848995.html

原文地址:https://www.cnblogs.com/mozzie/p/4667327.html