ReportViewer is a great control. You can make drill down report and preview the report in the webpage.
Export as Excel or Pdf file easily, etc. Great features.
But, sometimes the user may not want to preview the report, the just want to get the file.
You can probably do that with Crystal report, but ReportViewer can just do the same, there is no point to shift.
Here is how to export as a byte stream. Use the LocalReport.Render()
Warning warnings; string streamids; string mimeType; string encoding; string extension; //export to excel, use "PDF" is you would like pdf format byte l_reportBytes = rv_waterLicenseReport.LocalReport.Render("Excel", null, out mimeType, out encoding, out extension, out streamids, out warnings); Response.ClearContent(); //setup the file name Response.AddHeader("Content-Disposition", "attachment; filename=" + "ApplicationForm" + tb_LicenseNo.Text.Trim() + ".xls"); Response.AddHeader("Accept-Header", l_reportBytes.Length.ToString()); //define mime type Response.ContentType = "application/vnd.ms-excel"; Response.OutputStream.Write(l_reportBytes, 0, l_reportBytes.Length); Response.Flush(); Response.Close();
Strangely, the one page report of mine will export out as two page with the second page blank.
I will look into that later. For how to create a report, see my other post.