Экспорт хранимых процедур SQL Server в книгу Excel с несколькими листами - PullRequest
6 голосов
/ 05 января 2012

Как я могу экспортировать в книгу Excel из хранимой процедуры несколько листов с несколькими операторами SQL?

В настоящее время я использую следующее утверждение:

EXEC proc_generate__excel 'db', 'temp',@filename, @SeqNo, @ext, @sqlorder

Будет создано три книги Excel, если есть три оператора SQL.

Как можно экспортировать данные из трех операторов SQL в три листа в одной книге Excel ?

1 Ответ

7 голосов
/ 05 января 2012
  1. Создайте пустой файл Excel с нужными вам листами (мой пример sales.xls с листами "sheet1", "sheet2")

  2. Скопировать пустой файл в нужное место / имя

  3. Использование оператора select для получения необходимой информации для sheet1; вставьте данные в файл Excel:

    insert into OPENROWSET(
       'Microsoft.Jet.OLEDB.4.0', 
       'Excel 8.0;Database=d:\export\sales.xls;;HDR=YES', 
       'SELECT * FROM [Sheet1$]')
    select * from sales_part1
    
  4. Использование оператора select для получения необходимой информации для sheet2; вставьте данные в файл Excel:

    insert into OPENROWSET(
        'Microsoft.Jet.OLEDB.4.0', 
        'Excel 8.0;Database=d:\export\sales.xls;;HDR=YES', 
        'SELECT * FROM [Sheet2$]')
    select * from sales_part2
    

Проверьте эти ссылки для справки:
http://www.sqlservercentral.com/Forums/Topic487837-19-1.aspx
http://www.sqlservercentral.com/Forums/Topic660148-338-1.aspx
http://www.databasejournal.com/features/mssql/article.php/10894_3331881_1

Некоторые SO темы:
Экспорт SQL Server в Excel с помощью OPENROWSET
ошибка в сценарии sql с 'openrowset'

...