Ошибка EPPlus при выводе.XLSX в ответ

У меня есть странная проблема с использованием EPPlus для создания некоторых файлов.XLSX. У меня создается пакет, а затем выводится в ответ.

Я создал пакет следующим образом:

var file = new FileInfo(@"C:\Test.xlsx");
ExcelPackage package = new ExcelPackage(file);
//...code to output data...//
package.Save();

Это правильно сохраняет файл на моем локальном диске C :, и когда я его открываю, он отлично работает. Никаких ошибок и прочего, форматирование правильное и т.д.

Однако теперь я хочу вывести этот файл в поток ответов, поэтому я изменил код, который должен был выглядеть так:

ExcelPackage package = new ExcelPackage();
//...code to output data...//
MemoryStream result = new MemoryStream();
package.SaveAs(result);
context.Response.Clear();
context.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";                                                       
context.Response.AddHeader("Content-Disposition", "attachment;filename=MissionDetails.xlsx");
result.WriteTo(context.Response.OutputStream);
context.Response.End(); 

НО, когда я запускаю ЭТОТ код, я получаю следующее приглашение при попытке открыть файл Excel:

Excel found unreadable content in filename.xlsx. Do you want to recover the contents of this workbook? If you trust the source of this workbook, click Yes

Если нажать «Да», появится следующее приглашение:

This file cannot be opened by using Microsoft Excel. Do you want to search the Microsoft Office Online Web site for a converter that can open the file?

Я выбираю Noздесь, а затем он открывает файл Excel и отображает эту ошибку:

Excel completed file level validation and repair. Some parts of this workbook may have been repaired or discarded.

НО файл затем загружается нормально и выглядит правильно отформатированным и все такое. Но каждый раз, когда я пытаюсь открыть файл, он выдает одни и те же подсказки и сообщение об ошибке.

Note: The code to output the data does not change for either of these scenarios.

Кто-нибудь видел что-нибудь подобное? Или есть идеи, что может привести к неправильному сохранению файла только при выводе в ответ?

16
задан Ian Boyd 18 October 2012 в 14:47
поделиться