我需要做的是,客户希望在带有多个带自定义标头的工作表的Excel文档中生成报告。我已经尝试过SSRS 2008 Report Builder 2.0,但SSRS 2008 Report Builder 2.0不提供命名工作表。我在SQL Server Management Studio中尝试过bcp,但无法将其导出到多个工作表中。我已将查询放入临时表中,有没有办法将这些查询导出到同一个Excel文档中,但是每个工作表都有不同的标题和不同的工作表。
喜欢这个
请注意每个工作表的名称和标题不同。
这可能与SQL有关,还是有SSRS 2008 Report Builder 2.0的解决方法?
答案 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$]