Excel 作为 SSRS 中的数据源查询 Sheet 的特定列

Excel as a data source in SSRS Query a Specific Column of a Sheet

我想使用 Excel 12.0 的 ODBC 系统 DSN 从 excel 文件中查询数据。

从工作表而不是整个工作表中查询特定列的正确语法是什么:

SELECT 'Sheet1$'.* 来自 'Sheet1$'**

我需要能够不查询所有这些并且不让导入空白行。

最好的办法是使用 OPENROWSET。如果你 Excel 文件有列 headers 那么你可以做类似

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$]')

如果您没有行 headers,则设置 HDR=NO 并使用列名称 F1, F2....F99

您可以添加一个 where 子句来过滤掉空行,就像您使用常规 table 一样。

注意 您将需要允许 ad-hoc 查询并确保提供程序已安装在 esrver 上。有很多文章介绍如何做到这一点,非常简单。

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