Sql-Server-2005

創建 SQL 作業以發送 Excel 格式的電子郵件

  • February 7, 2019

我不擅長 SQL,需要一些幫助。我有一個 SQL2005 伺服器,我創建了一個作業來發送帶有 CSV 附件的電子郵件。我的工作執行良好,但我需要最終結果是 .xls 或 .xlsx 格式的 Excel 文件。

這是作業的程式碼:

USE My_DB
GO

EXEC msdb.dbo.sp_send_dbmail
   @profile_name = 'DBMail'
   ,@recipients =  'me@my_org.com' 
   ,@copy_recipients = ''
   ,@execute_query_database = 'My_DB'
   ,@query = 'exec MY_RPT_MonthlyWIPSp'
   --@body =@bodyContent
   ,@subject = 'Monthly WIP Report'
   ,@attach_query_result_as_file = 1
   ,@query_attachment_filename = 'result.csv'
   ,@query_result_separator=',',@query_result_width =32767
   ,@query_result_no_padding=1;

我需要更改什麼以及在哪里以我需要的格式獲取數據?我必須修改我的SP嗎?

tl; dr我認為您想要的不是您可用工具的選項。

我不相信使用 SQL 2005 可以將數據導出為 .xls 或 .xlsx 格式。

多年來,我嘗試使用幾種不同的工具來做到這一點。我沒有選擇不同工具的選項。

無論如何,對於大多數視窗設備,打開 .csv 文件都會在 Excel 中打開它。通常 .csv 文件在物理上比 .xls 或 .xlsx 文件要小,因此將其保留為 .csv 有一些好處。

獲得 .csv 文件後,您可以使用 Excel 打開它並將其另存為 .xls 或 .xlsx。我認為這是你唯一的選擇。

更新這不在問題的參數範圍內,但值得一提:有一個 PowerShell 模組dfinke/ImportExcel,即使您的機器上沒有 Excel,也可以將表格數據轉換為 Excel,並放入文件夾中。我在Dbatools的展示中看到了這一點,它看起來非常有趣。

引用自:https://dba.stackexchange.com/questions/226787