c # OpenXML получить из памяти - PullRequest
0 голосов
/ 04 июля 2019

У меня есть текущее приложение, которому нужно экспортировать значения в DataGridView в файл Excel, не сохраняя его.Я использую MS Office Interop, это прекрасно работает, но если записи настолько большие, это заняло так много времени для экспорта.Я провел некоторое исследование и узнал о OpenXML, применил его и выглядел великолепно, я могу сгенерировать 27 000 записей всего за 3 секунды.

Мне нужно открыть его в Excel, не сохраняя его.Поэтому я создал код, который будет создавать документ OpenXML в memoryStream.У меня уже есть этот код для создания файла в MemoryStream.

Итак, мой вопрос: как я могу открыть документ в memoryStream в приложении Excel?

Ниже мой код:

 MemoryStream documentStream = new MemoryStream();

 using (var workbook = SpreadsheetDocument.Create(documentStream, DocumentFormat.OpenXml.SpreadsheetDocumentType.Workbook))
 {
  \\code to create the document

  workbook.WorkbookPart.Workbook.Save();
  workbook.Close();
 }

//saw this code to open the Stream file but not working.
var doc = SpreadsheetDocument.Open(documentStream, true);
...