2012-09-05 63 views
1

我有这样的代码,但它保存到文件如何将Excel工作表写入MemoryStream?

  Excel.Application app = new Excel.Application(); 
      app.Workbooks.Add(); 
      Excel._Worksheet sheet = app.ActiveSheet; 
      sheet.Cells[1, "A"] = "login"; 
      sheet.Cells[1, "B"] = "e-mail"; 

      int row = 1; 
      foreach (ProviderUser u in users) 
      { 
       row++; 
       sheet.Cells[row, "A"] = u.UserName; 
       sheet.Cells[row, "A"] = u.Email; 
      } 

      string pathToSave = Path.Combine(Environment.CurrentDirectory, "users.xlsx"); 
      sheet.SaveAs(pathToSave); 
      app.Quit(); 
+0

这是不可能达成任何结果,Excel是进程外的一个COM服务器。它的数据不能直接访问,你必须通过命名空间方法。你只能要求它保存到一个文件。 –

+0

可能重复[如何写一个Excel工作簿到.NET中的MemoryStream?](http://stackoverflow.com/questions/156500/how-to-write-an-excel-workbook-to-a-memorystream-中网) –

回答

1

你知道该文件的位置,或者你需要先用Excel来创建它?

您可以方便地使用

var buffer = File.ReadAllBytes(pathToSave) 

,然后创建一个字节数组的内存流文件的字节数组:

var stream = new MemoryStream(buffer); 

那是什么意思?

相关问题