В системе часто генерируется поток Excel, и сгенерированный Excel передается пользователю.
Вообще говоря,
вы можете использовать Response для отправки HTTP-заголовка клиенту и отправки потока
Excel
. Проблема.
Основная причина, по которойдиалоговое окно загрузки файла появляется дважды при нажатии кнопки открытия
: (текущее предположение, точная причина еще не найдена).
При первом открытии временный файл потока Excel уже существует в системе (это файл без расширения файла), но исходного файла нет (существует ли реальный файл). сохранить временный файл на компьютере в других местах. (Связано ли это с отсутствием суффикса имени?)
Во второй раз выберите местоположение файла клиента и укажите, следует ли сохранять его в другую невременную папку.
Текущее решение —
создать новую страницу специально для предоставления экспортированных данных.
Напишите такой код в Page_load на этой странице.
Private void Page_Load(object sender, System.EventArgs e)
{
//Поместите сюда пользовательский код для инициализации страницы
ReportRule reportRule = новое ReportRule();
byte[] result= reportRule.RenderReport(HttpContext.Current.Server.UrlDecode(this.Request.QueryString["peportpath"]),Request.QueryString["id"]); //Создаем поток Excel
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
HttpContext.Current.Response.AppendHeader
("Content-disposition","attachment;filename=hahh.xls");
(результат);
HttpContext.Current.Response.End()
;