【问题标题】:How to Export an Excel file (.xlsx) format using SQL Server如何使用 SQL Server 导出 Excel 文件 (.xlsx) 格式
【发布时间】:2017-07-06 08:29:08
【问题描述】:

实际上,我希望导出 excel(.xlsx) 文件格式。以下是我的查询,用于使用 sp_send_dbmail

发送 .csv 文件格式
 EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'eMail Notification',
@recipients = 'abc@gmail.com',  
@query = 'use [dbname] select im.FullName as EmployeeName, im.MemberIC as NRIC 
         from tblIndividualMst im           
         where im.RecStatus = ''A''
         and (im.DateOfResign >= getdate() or im.DateOfResign is null)' ,
@subject = 'Test',
@attach_query_result_as_file = 1 ,
@query_attachment_filename = 'test.csv',
@query_result_separator=',',@query_result_width =32767,
@query_result_no_padding=1;

因此,当我尝试将文件格式从“test.csv”修改为“test.xlsx”时,test.xlsx 中的所有数据都搞砸了。那么如何修改我的查询以获得正确的 .xlsx 文件格式。

任何帮助表示赞赏。谢谢!!!

【问题讨论】:

    标签: sql sql-server sql-server-2008 sql-job


    【解决方案1】:

    我之前试过一次。您可以使用它,但它可能不适用于 sp_send_dbmail :

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

    另外,我会建议使用 SSIS,它实际上是为执行 ETL 相关任务而构建的。您可以从任何来源写入 excel 目的地,并使用发送邮件任务进行发送。它也可以配置为与 SQL Server 代理一起使用。

    SSIS 详细信息:

    【讨论】:

    • 完成此操作后,您应该可以在 sp_send_dbmail 上使用@file_attachments='d:\testfile.xls' 发送文件
    猜你喜欢
    • 1970-01-01
    • 2017-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    相关资源
    最近更新 更多