Я экспортирую файл Excel, используя OpenXML и MemoryStream, и иногда в путь к файлу добавляются дополнительные символы. Это происходит не каждый раз. Когда я впервые загружаю его в течение дня, кажется, что он работает нормально, но после нескольких запусков он начинает добавлять дополнительные символы. Я предполагаю, что есть проблема с утечкой памяти или буфером, но я недостаточно знаю об этом, чтобы исправить это.
Мой код:
using (var stream = new MemoryStream())
{
report.CreatePackage(stream);
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=Report_" + DateTime.Now.ToShortDateString() + ".xlsx");
stream.Position = 0;
stream.CopyTo(System.Web.HttpContext.Current.Response.OutputStream);
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.Close();
System.Web.HttpContext.Current.Response.End();
}
В пути к файлу это будет выглядеть примерно так: Report_09_14_2016CAOFMLJL.xlsx, а не только отчет и дата.
Любая помощь будет оценена по достоинству.
Response.Clear()
не очищает заголовки? Скажем наоборот: вызовResponse.ClearHeaders()
в подходящем месте что-нибудь изменит в сторону счастливого конца? - person grek40   schedule 14.09.2016".xlsx"
, но в результате есть расширение".XLSX"
(и это различие, вероятно, объясняет, почему добавляется"CAOFMLJL.XLSX"
). - person Sinatr   schedule 14.09.2016application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
. - person petelids   schedule 14.09.2016