使用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 $'...等。”
请帮助。 问候。
答案 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$]')
对我来说很好