Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将excel工作簿写入memoryStream_C#_Visual Studio 2012_Memorystream - Fatal编程技术网

C# 将excel工作簿写入memoryStream

C# 将excel工作簿写入memoryStream,c#,visual-studio-2012,memorystream,C#,Visual Studio 2012,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 Me

我想将新创建的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中)。另外,我尝试了导出固定格式,效果很好(但文档保存在电脑上)。 那么,SaveToStream在这里就不存在了

我正在Visual Studio 2012和Dotnet 4.5中开发一个Web ASP.NET MVC4应用程序。语言是C#。 是否可以将工作簿保存在memoryStream中而不保存在PC上


谢谢,

您尝试过以下选项吗

xlWorkSheet.UsedRange.Copy(Type.Missing);

处理器正在后台运行 你已经试过了 尝试此操作以终止进程“Excel.exe”


你好Nil23,我试过你提出的方案。Excel工作表//完成xl工作表xlWorkSheet.UsedRange.Copy(Type.Missing);MemoryStream ms=新的MemoryStream();xlWorkBook.SaveAs(ms);它仍然不起作用…我注意到了一些问题:我认为只有在xlWorkBook=new xlWorkBook()(来自ClosedXML)时才能使用xlWorkBook.SaveAs(ms)…ClosedXML在Visual Studio 2012中可用吗?如果是,什么图书馆?
'foreach (Process proc in System.Diagnostics.Process.GetProcessesByName("Excel"))
           {
           proc.Kill();
           }'