Как сохранить экспортированный отчет на клиентском сервере без использования Stimulsoft Reports

114
10

У меня есть отчет Stimulsoft в моем веб-приложении ASP.Net.

Я хочу экспортировать его с помощью этого кода на С#.

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

но этот код экспортирует отчет на сервер, а не на клиента.

Как сохранить отчет в хранилище клиентов?

спросил(а) 2016-01-19T13:18:00+03:00 4 года, 9 месяцев назад
1
Решение
83

Я нашел ответ сам.

Я должен записать экспортированные данные в MemoryStream, а не в файл. затем отправьте MemoryStream в ответ на текущий HttpContext. Таким образом, диалоговое окно загрузки будет открыто и спросить о пути загрузки на клиентском носителе.

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

ответил(а) 2016-01-20T10:22:00+03:00 4 года, 9 месяцев назад
72

Вы можете использовать метод ExportDocument() в отчете


MemoryStream st = new MemoryStream();
report.ExportDocument(StiExportFormat.Excel2007, st);

ответил(а) 2017-09-01T21:17:00+03:00 3 года, 1 месяц назад
58

Вы должны использовать класс StiReportResponse. Он возвращает отчет, экспортированный в указанный формат.

StiReportResponse.ResponseAsPdf(this, report);
StiReportResponse.ResponseAsExcel2007(this, report);

Вы можете получить дополнительную информацию в Руководстве по программированию Stimulsoft.

ответил(а) 2016-02-11T14:41:00+03:00 4 года, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема