我的ASP.Net网络应用程序中有一个Stimulsoft报告。
我想使用此C#代码导出它。
report.ExportDocument(StiExportFormat.Excel2007, "d:\\ExportedFile.xlsx", exportSettings);
但此代码将报告导出到服务器,而不是客户端。
如何将报告保存到客户端的存储空间?
答案 0 :(得分:2)
您可以在报告上使用ExportDocument()方法
MemoryStream st = new MemoryStream();
report.ExportDocument(StiExportFormat.Excel2007, st);
答案 1 :(得分:1)
您应该使用StiReportResponse类。 它返回导出为指定格式的报告。
StiReportResponse.ResponseAsPdf(this, report);
StiReportResponse.ResponseAsExcel2007(this, report);
您可以在Stimulsoft Programming Manual中获取更多信息。
答案 2 :(得分:0)
我自己找到了答案。
我应该将导出的数据写入MemoryStream,而不是文件。然后将MemoryStream发送到Current HttpContext的Response。 这样就会打开一个下载对话框,询问客户端存储上的donwload路径。
MemoryStream memoryStream = new MemoryStream();
renderedReport.ExportDocument(StiExportFormat.Excel2007, memoryStream, exportSettings);
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType = "text/csv";
HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=Emad.xlsx");
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.BinaryWrite(memoryStream.ToArray());
HttpContext.Current.Response.End();