Экспорт SQL-запроса для Excel с несколькими листами и пользовательскими заголовками

sql-server
Вопрос: Что мне нужно сделать, клиент хочет иметь отчет в excel doc с несколькими листами с пользовательскими заголовками. Я пробовал SSRS 2008 Report Builder 2.0, но таблицы с именами не доступны в SSRS 2008 Report Builder 2.0. Я пробовал bcp в SQL Server Management Studio, но не могу экспортировать его в несколько рабочих листов. Я

Вопрос:

Что мне нужно сделать, клиент хочет иметь отчет в excel doc с несколькими листами с пользовательскими заголовками. Я пробовал SSRS 2008 Report Builder 2.0, но таблицы с именами не доступны в SSRS 2008 Report Builder 2.0. Я пробовал bcp в SQL Server Management Studio, но не могу экспортировать его в несколько рабочих листов. Я поставил запросы в временные таблицы, есть ли способ экспортировать эти запросы в один и тот же документ excel, но с разными рабочими листами с другим заголовком для каждого рабочего листа.

Подобно этому enter image description hereenter image description hereenter image description hereenter image description here

Обратите внимание, что каждый лист имеет другое имя и другой заголовок.

Возможно ли это сделать с SQL или существует обходной путь для SSRS 2008 Report Builder 2.0?

Лучший ответ:

Для этого вы можете использовать SQL Server Integration Services 2008R2 (SSIS). В SSIS есть пункт назначения потока данных Excel, который принимает имя рабочего листа в качестве параметра. Вы можете создать свой SSIS-пакет, чтобы таким образом заполнить различные таблицы электронной таблицы.

Ответ №1

Я знаю, я знаю… вы тоже столкнулись с ошибкой:

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.

Вы можете сделать это в SSMS через T-SQL, следуя этому примеру:

Сначала вам нужно разрешить 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:UsersZivkoDesktopSQL Data.xlsx;’,’SELECT * FROM [Sheet1$]’) SELECT * FROM dbo.DimScenario

Файл.XLSX должен быть уже там, где вкладка имеет точное имя [Sheet1$]

Оцените статью
Добавить комментарий