繁体   English   中英

如何在运行时在 SSRS(SQL Server Reporting Services)中压缩和通过电子邮件发送 Excel 报告?

[英]How to Compress and Email Excel Report in SSRS(SQL Server Reporting Services) in Run Time?

我是 SSRS 的新手,如果这个问题已经发布,首先很抱歉,但经过精细搜索我发布了这个。

在我的商业智能开发工作室中,我正在生成 SSRS 报告并将它们保存为 excel 格式,直到现在一切正常。 .直到现在我都是手动完成的。但是我需要在运行时完成它们。我搜索了很多关于如何在运行时压缩和通过电子邮件发送报告的东西,但我张贴了这个。

对屏幕截图的回应表示赞赏。提前致谢。

您必须以编程方式执行此操作-也就是说,编写一个运行报告的程序,将其呈现到Excel,保存,压缩,然后通过电子邮件发送出去。

听起来很难,但实际上很简单。 使用ReportExecutionService.Render方法可以根据需要呈现报表,因此可以呈现到Excel,压缩输出并将其附加到电子邮件。

MSDN网站上有一些代码可以帮助您入门

如果有人遇到相同的情况,请为此添加一个迟到的答案。

我解决这个问题的方法是将 SSRS 订阅更改为写入“Windows 文件共享”而不是电子邮件。

在此处输入图片说明

如果您的电子邮件系统有大小限制并且文件太大,这将特别有用。 此外,在 SSRS 中通过电子邮件发送 Excel 的行限制为 ~65k,但如果您选择 Excel 而不是 Excel 2003(电子邮件没有此选择),则文件系统没有此限制。

将其保存在文件系统上后,创建一个包含两个步骤的 SQL Server 作业:

  1. 压缩文件。 例如,像这样使用 xp_cmdshell 和 7-Zip:

    exec master.dbo.xp_cmdshell '"C:\\Program Files\\7-Zip\\7z.exe" a -tzip C:\\Reports\\MyReports.zip C:\\Reports\\MyReport.xlsx'

  1. 通过数据库邮件发送压缩文件,如下例所示:

     EXEC msdb.dbo.sp_send_dbmail @profile_name = 'SERVER DBMAIL', @recipients = 'email@foo.com', @subject = 'My Report', @file_attachments='C:\\Reports\\MyReport.zip';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM