如何使用Stimulsoft Reports在客户端而非服务器中保存导出的报表

时间:2016-01-19 10:18:47

标签: c# asp.net export-to-excel stimulsoft

我的ASP.Net网络应用程序中有一个Stimulsoft报告。

我想使用此C#代码导出它。

report.ExportDocument(StiExportFormat.Excel2007, "d:\\ExportedFile.xlsx", exportSettings);

但此代码将报告导出到服务器,而不是客户端。

如何将报告保存到客户端的存储空间?

3 个答案:

答案 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();