2014-01-08 2 views
1

Я хотел бы сохранить недавно созданный Excel в MemoryStream. Вот мой код:Как написать книгу Excel в memoryStream?

using Excel = Microsoft.Office.Interop.Excel; 
... 

public void Create(){ 
    Excel.Application xlApp; 
    Excel.Workbook xlWorkBook; 
    Excel.Worksheet xlWorkSheet; 

    //Complete xlWorkSheet 

    MemoryStream ms = new MemoryStream(); 
    xlWorkBook.SaveAs(ms); 

    xlWorkBook.Close(false, misValue, misValue); 
    xlApp.Quit(); 
} 

Проблема заключается в том, когда я только после останова xlWorkBook.SaveAs (мс), мс пусто (длина 0). Кроме того, при сохранении на ПК создается файл «System.IO.MemoryStream» (в папке Documents). Плюс, я попробовал ExportAsFixedat, и он работал хорошо (но документ сохранен на ПК). Тогда SaveToStream здесь не существует.

Я разрабатываю приложение Web ASP.NET MVC4 в Visual Studio 2012 и Dotnet 4.5. Язык C#. Можно сохранить workBook в memoryStream без сохранения его на ПК?

Thanks,

ответ

0

Вы пробовали следующую опцию?

xlWorkSheet.UsedRange.Copy(Type.Missing); 
+0

Здравствуйте, Nil23, я попробовал вариант, который вы предложили. Excel.Решетка xlWorkSheet; // Завершите xlWorkSheet xlWorkSheet.UsedRange.Copy (Type.Missing); MemoryStream ms = new MemoryStream(); xlWorkBook.SaveAs (мс); Это все еще не работает ... – F2O

+0

Я заметил что-то: Я думаю, что ** xlWorkBook.SaveAs (ms) ** можно использовать, только если ** xlWorkBook = new XLWorkbook() ** (от ClosedXML) ... ClosedXML доступен в Visual Studio 2012? Если да, то какая библиотека? – F2O

 Смежные вопросы

  • Нет связанных вопросов^_^