如何将多个XtraReports嵌入到Outlook电子邮件正文中?

时间:2018-04-12 07:57:15

标签: c# xaf

基于DevExpress的(Xaf)Windows应用程序中有多个报告。

根据请求,我必须从应用程序中获取选定的报告,生成这些报告,然后在Outlook应用程序中创建一个电子邮件,并将这些报告嵌入到电子邮件html正文中。

问题是:如果我有一个XtraReport类实例,并且我有Microsoft.Office.Interop.Outlook.MailItem类实例。如何将报告嵌入电子邮件html正文?

XtraReport xtraReport = reportContainer.Report;
xtraReport.CreateDocument();

MailItem email = (Microsoft.Office.Interop.Outlook.MailItem)(oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem));

我想将xtraReport对象嵌入email html主体,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

使用其中一个XtraReports导出功能。我可能会使用XtraReport.ExportToHTML(Stream stream),然后只需编写流 回到邮件HTML-body。 像这样(未经测试):

            report.CreateDocument();
            string reportHtml = String.Empty;

            using (Stream stream = new MemoryStream())
            {
                report.ExportToHtml(stream);
                stream.Position = 0;
                using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
                {
                    reportHtml = reader.ReadToEnd();
                }
            }

            mailItem.Body = reportHtml;