OPENROWSET-文件名中的空格有问题

时间:2018-11-04 13:48:32

标签: sql sql-server excel

使用SQL Server 2016。

我正在尝试使用OPENROWSET读取Excel文件。效果很好:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml; 
  HDR=YES; Database=D:\temp\my_filename_123.xlsx', 'SELECT * FROM [Sheet1$]')

请注意,文件名中没有空格。但是,以下操作无效:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml; 
  HDR=YES; Database=D:\temp\my filename 123.xlsx', 'SELECT * FROM [Sheet1$]') 

或使用双引号将整个路径括起来:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml; 
  HDR=YES; Database="D:\temp\my filename 123.xlsx"', 'SELECT * FROM [Sheet1$]')

错误是“ ..找不到'Sheet1 $'...等。”

请帮助。 问候。

1 个答案:

答案 0 :(得分:2)

尝试从Excel版本规范中删除XML:

select * 
    FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=D:\temp\my filename 123.xlsx;HDR=YES', 'SELECT * FROM [Sheet1$]')

对我来说很好