如何使用ASP.NET中的C#代码以PDF,HTML和DOC格式导出Crystal Report?

时间:2011-06-12 07:29:10

标签: asp.net crystal-reports pdf-generation export

我在ASP.NET网站上设计了一个报告,现在我需要提供在PDF, HTML, and DOC formats中导出该报告的选项,我该如何实现?

crystal report有一个按钮可以做到这一点,但是当我尝试保存该报告时,它保存为.aspx格式,因为我在asp.net网页中查看它。

3 个答案:

答案 0 :(得分:2)

试试这个:

  <asp:ImageButton Width="20px" Height="20px" ID="btnPdf" runat="server"
    OnClick="btnExport_Click" ImageUrl="~/Images/PDF.png" AlternateText="Export To PDF" CssClass="AddedButton" />
   <asp:ImageButton Width="20px" Height="20px" ID="btnXls" runat="server" 
    OnClick="btnExport_Click" ImageUrl="~/Images/XLS.png" AlternateText="Export To Excel" />   
   <asp:ImageButton Width="20px" Height="20px" ID="btnDoc" runat="server" 
    OnClick="btnExport_Click" ImageUrl="~/Images/DOC.png" AlternateText="Export To Word" />   

C#代码:

protected void btnExport_Click(object sender, EventArgs e)
{
    // Stop buffering the response
    Response.Buffer = false;
    // Clear the response content and headers
    Response.ClearContent();
    Response.ClearHeaders();
    try
    {
        string senderID = ((ImageButton)sender).ID;
        if (senderID == "btnPdf")
            reportDocument.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, Page.Title);
        else if (senderID == "btnXls")
            reportDocument.ExportToHttpResponse(ExportFormatType.ExcelRecord, Response, true, Page.Title);
        else if (senderID == "btnDoc")
            reportDocument.ExportToHttpResponse(ExportFormatType.WordForWindows, Response, true, Page.Title);
        // There are other format options available such as Word, Excel, CVS, and HTML in the ExportFormatType Enum given by crystal reports
    }
    catch (Exception ex)
    {
       //error management

    }
}

答案 1 :(得分:1)

您必须自己完成:创建一个包含所需格式的下拉列表,并使用一个按钮进行回发以进行导出。

这是.Net 1.1 / CR9的一个例子。回发到以下内容时:

  1. 指定您的报告类实例属性值MyReport.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile;
  2. 如果您要导出到.pdf,请执行以下操作:MyReport.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat;您还可以选择WordForWindowsRichTextExcelHTML40等。
  3. 然后执行以下操作:

    CrystalDecisions.Shared.DiskFileDestinationOptions fileOptions = new DiskFileDestinationOptions();

    fileOptions.DiskFileName = "someTmpFileName";

    MyReport.DestinationOptions = fileOptions;

    MyReport.Export();

  4. 您可以找到有关ExportOptions class here的更多信息。

    对于VS 2005 / .Net 2而言here is an example

答案 2 :(得分:0)

您可以使用Crystal报表查看器控件,该控件具有Word,excel,odf等内置导出功能...

Crystal report viewer