如何在沒有先將文件保存到文件系統的情況下將Excel工作簿寫入MemoryStream
?如何在Excel中將一個Excel工作簿寫入MemoryStream?
的Microsoft.Office.Interop.Excel.WorkBook
內的所有選項保存選項取一個文件名。
如何在沒有先將文件保存到文件系統的情況下將Excel工作簿寫入MemoryStream
?如何在Excel中將一個Excel工作簿寫入MemoryStream?
的Microsoft.Office.Interop.Excel.WorkBook
內的所有選項保存選項取一個文件名。
我已經做了廣泛的工作與PIA與存儲Excel文件中的文檔庫和流出來的瀏覽器,我沒有先寫內容到一直沒能找到一個解決方案,使用PIA文件系統第一。
我認爲你將不得不吞下子彈和處理文件系統作爲中介。好消息是,你可以給文件一個唯一的名字,像一個GUID或者使用其他一些tempfilename方法(不知道是否存在.net),並在完成後刪除內容。
如果您只需要Excel中的基本功能,則可能需要將工作簿創建爲Html流。 There is another question on SO that handless this。
這也解決了一些關於解決方案可伸縮性的問題(您可能還沒有)。
另一種選擇是使用this免費庫導出工作簿。工作簿類的保存方法可以採用文件名或流。
你可以做到這一點的唯一方法是,如果你準備創建一個允許你存儲所有你想保持各種比特和數據/公式/ VBA /鏈接/ OLE對象的件的自定義對象,副本從工作簿到對象,然後將該對象保存到內存流中。在影響使用您的代理對象之間。
沒有辦法(如其他人所說)直接將Excel文件寫入內存。
使用Excel 2007 OpenXML格式,可以使用工作簿的BeforeSave事件來創建一個自定義方法,該方法首先將BeforeSave事件的Cancel參數設置爲True,然後將生成的xml包(表示文件)轉換成內存中的對象。
這可以通過Open XML SDK 2.0完成。埃裏克·懷特對如何與OOXML文件流在Working with In-Memory Open XML Documents
只是想跟進,看看下面的回答你的問題的工作有很大的文章。 – 2011-02-18 20:03:33
@ToddMain我們在2014年,您是否看到過最新的解決方案? – 2014-08-05 15:49:56