February 8, 2007 at 8:12 am
I'm trying to render a serverReport to Excel using ReportViewer.ServerReport.Render. I have a report with some parameters that I'm setting dynamically but instead of rendering it as html I would like to automatically render it as Excel. Here is what I have so far:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim cred As New ReportServerCredentials(ConfigurationManager.AppSettings("ReportServerUserName"), ConfigurationManager.AppSettings("ReportServerPassword"), ConfigurationManager.AppSettings("ReportServerDomain"))
Dim Param(1) As Microsoft.Reporting.WebForms.ReportParameter
Param(0) = New Microsoft.Reporting.WebForms.ReportParameter("theyear", "2006")
Param(1) = New Microsoft.Reporting.WebForms.ReportParameter("fieldname", "BASE")
With ReportViewer1
.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote
With .ServerReport
.ReportServerCredentials = cred
.ReportPath = ConfigurationManager.AppSettings("ReportServerDirectory") & "BaseVolDetails"
.ReportServerUrl = New System.Uri(ConfigurationManager.AppSettings("ReportServerURL"))
.DisplayName = "Base Volume Details"
.SetParameters(Param)
End With
.ShowParameterPrompts = False
.ShowPromptAreaButton = False
Dim s As New System.Collections.Specialized.NameValueCollection
With s
.Add("theyear", "2006")
.Add("fieldname", "BASE")
End With
Dim deviceInfo As String
Dim mimeType As String
Dim encoding As String
Dim streams As String()
Dim warnings As Microsoft.Reporting.WebForms.Warning()
Dim returnValue As Byte()
returnValue = ReportViewer1.ServerReport.Render("Excel", deviceInfo, mimeType, encoding, "xls", streams, warnings)
Response.Write(returnValue)
End With
End If
End Sub
The report renders as html fine but won't render as Excel.
Can anyone help? I don't quite understand what the parameters for the ServerReport.Render method are. I couldn't find any examples?
Thanks.
February 13, 2007 at 2:34 pm
I found the answer. Code is below:
Dim mimeType As String
Dim encoding As String
Dim streams As String()
Dim extension As String
Dim warnings As Microsoft.Reporting.WebForms.Warning()
Dim returnValue As Byte()
returnValue = ReportViewer1.ServerReport.Render("EXCEL", Nothing, mimeType, encoding, extension, streams, warnings)
Response.Buffer = True
Response.Clear()
Response.ContentType = mimeType
Response.AddHeader("content-disposition", "attachment ; filename=filename." + extension)
Response.BinaryWrite(returnValue)
Response.Flush()
Response.End()
March 21, 2007 at 6:13 pm
Thanks for posting. This was stumping me for a while... -Joe
Viewing 3 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy