使用多个工作表和自定义标头将SQL查询导出到Excel

时间:2015-02-23 23:57:31

标签: sql-server reporting-services export-to-excel

我需要做的是,客户希望在带有多个带自定义标头的工作表的Excel文档中生成报告。我已经尝试过SSRS 2008 Report Builder 2.0,但SSRS 2008 Report Builder 2.0不提供命名工作表。我在SQL Server Management Studio中尝试过bcp,但无法将其导出到多个工作表中。我已将查询放入临时表中,有没有办法将这些查询导出到同一个Excel文档中,但是每个工作表都有不同的标题和不同的工作表。

喜欢这个enter image description here enter image description here enter image description here enter image description here

请注意每个工作表的名称和标题不同。

这可能与SQL有关,还是有SSRS 2008 Report Builder 2.0的解决方法?

2 个答案:

答案 0 :(得分:2)

您可以使用SQL Server Integration Services 2008R2(SSIS)来执行此操作。 SSIS有一个Excel数据流目标,它接受工作表名称作为参数。您可以构建SSIS包以这种方式填充电子表格的各种工作表。

答案 1 :(得分:0)

我知道,我知道...您也遇到了错误:

Msg 15281, Level 16, State 1, Line 1
SQL Server blocked access to STATEMENT ‘OpenRowset/OpenDatasource’ of component ‘Ad Hoc Distributed Queries’ because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of ‘Ad Hoc Distributed Queries’ by using sp_configure. For more information about enabling ‘Ad Hoc Distributed Queries’, search for ‘Ad Hoc Distributed Queries’ in SQL Server Books Online.

您可以通过T-SQL在SSMS中进行操作,请遵循this example

首先,您需要允许SSMS绕过错误:

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
RECONFIGURE

然后您可以通过以下方式将结果保存在精确的Excel选项卡中:

INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;
Database=C:\Users\Zivko\Desktop\SQL Data.xlsx;','SELECT * FROM [Sheet1$]') 
SELECT * FROM dbo.DimScenario

文件.XLSX必须已经存在,并且选项卡具有准确的名称[Sheet1$]