如何使用SQL Server导出Excel文件(.xlsx)格式

时间:2017-07-06 08:29:09

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

其实我想要导出一个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"的文件格式时to" test.xlsx",所有数据都在test.xlsx中搞乱了。那么如何修改我的查询以获得正确的.xlsx文件格式。

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

1 个答案:

答案 0 :(得分:0)

我曾经尝过它。您可以使用此方法,但这可能不适用于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

或者,我建议使用实际构建用于执行ETL相关任务的SSIS。您可以从任何源写入Excel目标,并使用发送邮件任务进行发送。它也可以配置为与SQL Server代理一起使用。

SSIS详细信息: