2008-10-01 105 views
13

如何在沒有先將文件保存到文件系統的情況下將Excel工作簿寫入MemoryStream如何在Excel中將一個Excel工作簿寫入MemoryStream?

Microsoft.Office.Interop.Excel.WorkBook內的所有選項保存選項取一個文件名。

+0

只是想跟進,看看下面的回答你的問題的工作有很大的文章。 – 2011-02-18 20:03:33

+0

@ToddMain我們在2014年,您是否看到過最新的解決方案? – 2014-08-05 15:49:56

回答

6

我已經做了廣泛的工作與PIA與存儲Excel文件中的文檔庫和流出來的瀏覽器,我沒有先寫內容到一直沒能找到一個解決方案,使用PIA文件系統第一。

我認爲你將不得不吞下子彈和處理文件系統作爲中介。好消息是,你可以給文件一個唯一的名字,像一個GUID或者使用其他一些tempfilename方法(不知道是否存在.net),並在完成後刪除內容。

1

另一種選擇是使用this免費庫導出工作簿。工作簿類的保存方法可以採用文件名或流。

1

你可以做到這一點的唯一方法是,如果你準備創建一個允許你存儲所有你想保持各種比特和數據/公式/ VBA /鏈接/ OLE對象的件的自定義對象,副本從工作簿到對象,然後將該對象保存到內存流中。在影響使用您的代理對象之間。

沒有辦法(如其他人所說)直接將Excel文件寫入內存。

使用Excel 2007 OpenXML格式,可以使用工作簿的BeforeSave事件來創建一個自定義方法,該方法首先將BeforeSave事件的Cancel參數設置爲True,然後將生成的xml包(表示文件)轉換成內存中的對象。

相關問題