首页 > 解决方案 > 在电子邮件中作为正文发送 RDLC

问题描述

我已经挖了 5 个小时,但什么也没找到。有什么方法可以将 rdlc 生成为 HTML。我尝试了 RDLC to Image 但我的问题是,生成的图像被切成两半。

标签: htmlwinformsrdlcreportviewer

解决方案


终于找到了解决方案(即使不是最佳答案)。所以基本上,首先转换为 Excel,然后将 excel 转换为 html,然后读取所有文本。我使用 FreeSprite.XLS 将 excel 转换为 html。

Freespire.xls 链接

这是我的代码

  private string GenerateHTMLReport(ReportViewer rv)
    {
        string mimeType,
            encoding,
            fileNameExtension;
        Warning[] warnings=null;
        string[] streamIds=null;

        //Export report
        byte[] exportBytes = rv.LocalReport.Render("Excel", null, out mimeType, out encoding,
            out fileNameExtension, out streamIds, out warnings);

        //convert to excel
        FileStream fs = new FileStream("report.xls", FileMode.Create);
        fs.Write(exportBytes, 0, exportBytes.Length);
        fs.Close();

        Workbook workbook = new Workbook();
        workbook.LoadFromFile("report.xls");

        //convert Excel to HTML  
        Worksheet sheet = workbook.Worksheets[0];
        sheet.SaveToHtml("report.html");

        string html =System.IO.File.ReadAllText("report.html");
        return "";
    }

生成的 HTML 代码。 在此处输入图像描述

在预览中生成 HTML。 在此处输入图像描述

希望有人会发现它有帮助。


推荐阅读