2017-06-05 33 views
-1

我想使用ODBC系统DSN for Excel 12.0从excel文件查询数据。Excel作为SSRS中的数据源查询工作表的特定列

会是怎样从一个工作表中查询特定的列正确的语法,而不是整个工作表这样的例子:

选择“工作表Sheet1 $” * FROM“工作表Sheet1 $” **

我需要能够不查询所有这些,也不会导入空白行。

+0

如下所示,您无法直接从SSRS连接到Excel,但可以通过SQL Server执行此操作。尝试将文件用作数据源有很多限制,您应该首先考虑将数据加载到数据库中的表中。 – StevenWhite

回答

0

最好的办法是使用OPENROWSET。如果您的Excel文件具有列标题,那么你可以这样做

Select MyFirstColumn, MySecondColumn, MyThridColumn, MyLastColumn FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=\\myServer\MyPath\MyFile.xlsx;HDR=YES', 'SELECT * FROM [myWorkSheet$]') 

如果你没有行标题然后设置HDR=NO和使用列名F1, F2....F99

您可以添加一个where子句来过滤掉空白就像你使用普通桌子一样。

注意您需要允许即席查询,并确保供应商安装在esrver上。有很多关于如何做到这一点的文章,这很简单。

另外请记住,路径必须对服务器可见,而不仅仅是本地工作站。

相关问题