-1
我想使用ODBC系统DSN for Excel 12.0从excel文件查询数据。Excel作为SSRS中的数据源查询工作表的特定列
会是怎样从一个工作表中查询特定的列正确的语法,而不是整个工作表这样的例子:
选择“工作表Sheet1 $” * FROM“工作表Sheet1 $” **
我需要能够不查询所有这些,也不会导入空白行。
我想使用ODBC系统DSN for Excel 12.0从excel文件查询数据。Excel作为SSRS中的数据源查询工作表的特定列
会是怎样从一个工作表中查询特定的列正确的语法,而不是整个工作表这样的例子:
选择“工作表Sheet1 $” * FROM“工作表Sheet1 $” **
我需要能够不查询所有这些,也不会导入空白行。
最好的办法是使用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上。有很多关于如何做到这一点的文章,这很简单。
另外请记住,路径必须对服务器可见,而不仅仅是本地工作站。
如下所示,您无法直接从SSRS连接到Excel,但可以通过SQL Server执行此操作。尝试将文件用作数据源有很多限制,您应该首先考虑将数据加载到数据库中的表中。 – StevenWhite