Je ne sais pas comment exporter mon document de rapport ActiveReports vers XLS dans mon application asp.net mvc.Comment exporter un ActiveReport vers XLS dans une application ASP.Net MVC?
Mon concept jusqu'ici est d'avoir une liste déroulante des types d'exportation et un bouton soumettre qui soumet cette valeur à mon contrôleur. Quand je suis sur le contrôleur, je régénère le rapport et le passe à ma méthode d'exportation. Je ne suis pas sûr de ce que doit avoir cette méthode d'exportation. Je reçois également une erreur hors plage sur la méthode xlsExport.Export réelle. Voici ma méthode d'exportation. Notez également que reportBase.Report est un objet ActiveReport3.
private ActionResult Export(ReportBase reportBase)
{
Response.ClearContent();
Response.ClearHeaders();
var exportType = Request.Form["exportType"];
switch (exportType)
{
case "RTF":
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment;filename=report.rtf");
var rtfExport = new RtfExport();
rtfExport.Export(reportBase.Report.Document, Response.OutputStream);
break;
case "TIFF":
Response.ContentType = "image/tiff";
Response.AddHeader("Content-Disposition", "attachment;filename=report.tif");
var tiffExport = new TiffExport();
var filePath = System.IO.Path.GetTempFileName();
tiffExport.Export(reportBase.Report.Document, filePath);
var fileStream = System.IO.File.Open(filePath, System.IO.FileMode.Open);
var bufferLength = (int)fileStream.Length;
var output = new byte[bufferLength];
var bytesRead = fileStream.Read(output, 0, bufferLength);
Response.OutputStream.Write(output, 0, bytesRead);
System.IO.File.Delete(filePath);
break;
case "XLS":
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment;filename=report.xls");
var xlsExport = new XlsExport();
xlsExport.Export(reportBase.Report.Document, Response.OutputStream);
break;
}
Response.Flush();
Response.End();
return View("Display", reportBase);
}
Merci Talljoe! Non seulement cela a rendu mon code beaucoup plus agréable, mais il a résolu le problème. Je ne savais pas comment manipuler la réponse de façon MVC. Merci pour l'aide! –