我不确定如何在我的 asp.net mvc 应用程序中将我的 ActiveReports 报告文档导出到 XLS。
到目前为止,我的概念是有一个导出类型的下拉列表和一个将该值提交给我的控制器的提交按钮。当我在控制器上时,我重新生成报告并将其传递给我的 Export 方法。我不确定让这个 Export 方法返回什么。我在实际的 xlsExport.Export 方法上也遇到了超出范围的错误。下面是我的导出方法。还要注意,reportBase.Report 是一个 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);
}