SQL Server存储过程导出到具有多个工作表的Excel工作簿

时间:2012-01-05 09:38:03

标签: sql-server excel stored-procedures

如何将存储过程中的Excel工作簿导出到包含少量sql语句的多个工作表?

我目前正在使用以下声明:

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

如果有三个sql语句,它将创建三个Excel工作簿。

如何将三个sql语句中的数据导出到一个Excel工作簿中的三个工作表

1 个答案:

答案 0 :(得分:7)

  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
    
  5. 请查看以下链接以供参考:
    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 export to Excel with OPENROWSET
    error on sql script with 'openrowset'