私のasp.net mvcアプリケーションでActiveReportsレポート文書をXLSにエクスポートする方法がわかりません。ActiveReportをASP.Net MVCアプリケーションのXLSにエクスポートするにはどうすればよいですか?
これまでのコンセプトは、エクスポートタイプのドロップダウンと、その値をコントローラに送信する送信ボタンを持つことです。私がコントローラ上にいるとき、私はレポートを再生成し、エクスポートメソッドに渡します。私はこのエクスポート方法の戻り値を何にするか分からない。私はまた、実際の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);
}
ありがとうTalljoe!これにより、私のコードがより良く見えるだけでなく、問題が解決されました。私はMVCのやり方でどのように応答を操作するのか分からなかった。助けてくれてありがとう! –