Speichern Sie ein Byte -Array in Excel -Datei
Posted: 23 May 2025, 01:05
Ich bekomme ein Byte -Array aus dem SSRS -Bericht. Dann möchte ich es auf dem Server für eine weitere Verarbeitung in Excel speichern. Gibt jedoch den Fehler beim Öffnen von "Excel kann die Datei nicht öffnen, da das Dateiformat oder die Dateierweiterung nicht gültig ist". < /P>
Code ist wie folgt < /p>
Code ist wie folgt < /p>
Code: Select all
Microsoft.Reporting.WebForms.ReportViewer rview = new Microsoft.Reporting.WebForms.ReportViewer();
//Web Address of your report server (ex: http://rserver/reportserver)
rview.ServerReport.ReportServerUrl = new Uri("http://rserver/reportserver");
rview.ServerReport.ReportPath = "/Report Project2/Comment";
string mimeType, encoding, extension, deviceInfo;
string[] streamids;
Microsoft.Reporting.WebForms.Warning[] warnings;
string format = "Excel"; //Desired format goes here (PDF, Excel, or Image)
deviceInfo = "" + "True" + "";
byte[] bytes = rview.ServerReport.Render(format, deviceInfo, out mimeType, out encoding, out extension, out streamids, out warnings);
try
{
System.IO.FileStream _FileStream = new System.IO.FileStream(Server.MapPath("output.xlsx"), System.IO.FileMode.Create, System.IO.FileAccess.Write);
_FileStream.Write(bytes, 0, bytes.Length);
//_FileStream.Close();
}
catch (Exception _Exception)
{
Console.WriteLine("Exception caught in process: {0}", _Exception.ToString());
}
< /code>
Es weiß nicht, wie man Inor -Format, DeviceInfo usw. verwendet, mit Respose -Objekt Excel im Client -Browser.Response.Clear();
if (format == "PDF")
{
Response.ContentType = "application/pdf";
Response.AddHeader("Content-disposition", "filename=output.pdf");
}
else if (format == "Excel")
{
Response.ContentType = "application/excel";
Response.AddHeader("Content-disposition", "filename=output.xls");
}
Response.OutputStream.Write(bytes, 0, bytes.Length);
Response.OutputStream.Flush();
Response.OutputStream.Close();
Response.Flush();
Response.Close();