2014-01-08 175 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(MS),MS是空的(长度为0)。此外,保存时,PC上会创建一个文件“System.IO.MemoryStream”(文件夹Documents)。另外,我试过ExportAsFixedFormat,它运行良好(但文档保存在PC上)。 然后,SaveToStream在这里不存在。

我正在Visual Studio 2012和Dotnet 4.5中开发应用程序Web ASP.NET MVC4。该语言是C#。 可以将工作簿保存在memoryStream中,而无需将其保存在PC上?

谢谢,

回答

0

你试过下面的选项吗?

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

你好Nil23,我试过你提出的选项。 Excel.Worksheet xlWorkSheet; //完整xlWorkSheet xlWorkSheet.UsedRange.Copy(Type.Missing); MemoryStream ms = new MemoryStream(); xlWorkBook.SaveAs(ms); 它仍然无法工作... – F2O

+0

我注意到了一些事情:我认为** xlWorkBook.SaveAs(ms)**只能用于** xlWorkBook = new XLWorkbook()**(来自ClosedXML)... ClosedXML在Visual Studio 2012中可用?如果是,什么库? – F2O

相关问题