Как создать файл Excel с помощью OpenXML без создания локального файла?

Можно ли создавать и редактировать документ Excel с использованием OpenXML SDK без создания локального файла?

Согласно документации, метод Create требует filepath к файлу, который создает локальную копию файла.

SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook);

Я имею в виду статью MSDN здесь: https://msdn.microsoft.com/en-us/library/office/ff478153.aspx

Мое требование - создать файл, и он должен быть загружен браузером при нажатии кнопки.

Любое предложение?

Ответ 1

Вы можете использовать перегрузку SpreadsheetDocument.Create, которая принимает Stream и передать его MemoryStream:

MemoryStream memoryStream = new MemoryStream();
SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(memoryStream, SpreadsheetDocumentType.Workbook);

//add the excel contents...

//reset the position to the start of the stream
memoryStream.Seek(0, SeekOrigin.Begin);

return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

Обратите внимание, что в соответствии с fooobar.com/info/282948/... вам не нужно располагать поток, как это будет сделано для вас по FileStreamResult класса.Р >