0

我正在尝试通过 SQL Server 2008 从 excel 文件中读取数据。

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
      'Excel 8.0;Database=C:\Hierarchy.xlsx',
      'SELECT * FROM [Group$]')

它给了我一个奇怪的错误:

OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" returned message "Unspecified error".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)". 

Excel 表格格式正确,路径正确。不知道为什么它给我一个错误。

4

2 回答 2

1

我找到了这个解决方案:

我将现有文件保存为向后兼容,然后启动这个文件:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
'Excel 12.0;HDR=NO;Database=D:\Hierarchy.xls;', 
[Group$])

不知道为什么它有效而其他无效,可能有人对此有一个好主意。

于 2013-07-18T22:07:21.043 回答
0

尝试使用 ACE OleDB 和 excel 版本 12.0

例子:

SELECT * FROM 
OPENROWSET
(           

        'Microsoft.ACE.OLEDB.12.0',
        'Data Source=C:\Hierarchy.xlsx;Extended Properties="Excel 12.0;HDR=YES"', 
        'SELECT * FROM [Group$]'
)
于 2013-07-18T19:28:05.040 回答