Sql 只返回一个结果的OpenRowSet

Sql 只返回一个结果的OpenRowSet,sql,sql-server,tsql,import-from-excel,openrowset,Sql,Sql Server,Tsql,Import From Excel,Openrowset,我使用OPENROWSET和Microsoft.ACE.OLEDB.12.0从Excel2007(.xlsx)文件检索SSMS中的数据。当我执行查询时,我只得到第一列(Excel单元格A1)的标题以及其余列的F2、F3等标题,表中没有数据。Excel文件包含数据;但是,OPENROWSET只检索单元格A1 我两者都试过了 SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\filepath.xls

我使用OPENROWSET和Microsoft.ACE.OLEDB.12.0从Excel2007(.xlsx)文件检索SSMS中的数据。当我执行查询时,我只得到第一列(Excel单元格A1)的标题以及其余列的F2、F3等标题,表中没有数据。Excel文件包含数据;但是,OPENROWSET只检索单元格A1

我两者都试过了

SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\filepath.xlsx','SELECT * FROM [Sheet1$]')

两个查询的结果相同

我还尝试过使用导入/导出向导(64位),当我在“选择源表和视图”并使用编辑映射时。。。我收到以下错误:

Column information for the source and destination data could not be retrieved

-Unexpected error from external database driver(1).
**Additional information**
->Unexpected error from external database driver (1).(Microsoft Access Database Engine)
我使用的是64位版本的SQL Server。此外,这是一个Excel文件,我从外部来源收到。当使用相同的方法检索数据时,我从外部来源收到的其他Excel文件不会给我带来任何问题。此外,我使用的是SQL Server 2008 R2,Excel文件与SQL Server位于同一驱动器上


非常感谢您的帮助。如果我能做到这一点,这样我就可以处理将这些文件中的数据移动到SSIS包中的问题,那就太好了。

ACE在试图转换为可以查询的文件时,可能会对excel文件的布局做出一些奇怪的假设(尤其是对于数据类型。OMG请不要让我开始讨论这个问题)。无论如何,看看excel中的xls文件。如果标题和数据开头之间有一个空行,则可能会导致问题。也是一个空列,将数据从中间分隔开。一般来说,ACE将分析前8行左右的数据,以确定它关心的是什么,因此前8行需要处于顶端形状。感谢您的回复。26 x 129网格中的每个单元格在.xlsx文件的字段中都有某种数据。任何数据之间都没有空值或空行。我只是尝试了一些我之前没有想到的东西,然后打开文件并另存为。重新保存时,查询工作正常,没有任何问题。您是否知道是什么原因导致ACE无法正确读取该文件?是否有任何机构针对该问题找到了解决方案?因为在Excel(office)中重新保存时,OPENROWSET会返回正确的结果。
Column information for the source and destination data could not be retrieved

-Unexpected error from external database driver(1).
**Additional information**
->Unexpected error from external database driver (1).(Microsoft Access Database Engine)