簡體   English   中英

OpenXML - 如何將spreadsheetdocument保存到流?

[英]OpenXML - how to save spreadsheetdocument to stream?

我從流中獲取.xlsx文檔(使用SpreadsheetDocument.Open(stream, false)然后將其存儲到Spreadsheetdocument字段中,以便我以后可以維護同一個對象。

我有一個保存方法,理想情況下我應該能夠將SpreadsheetDocument保存到流中。 document..WorkbookPart.Workbook.Save(stream); 但是這只是給我一個空文件,當我只保存第一張表時(使用document.WorkbookPart.WorksheetParts.First().Worksheet.Save(stream);文件很亂,不包含相關信息。將電子表格文檔保存到流中?

我知道這有點老了,但是在遇到同樣的問題時我偶然發現了這個問題,所以我想用我發現的解決方案來更新它。

我的問題是我需要將流位置設置回零。

stream.Position = 0;

根據我的實驗,一旦保存電子表格,流的位置就是流的結束。 當我將流輸出到Web瀏覽器時,它從當前位置啟動流並運行到結束而不是從開始。 我認為這與框架中的其他API一致。

根據文檔, SpreadsheetDocument.Close 保存並關閉OpenXml包以及所有底層部分流。

更新:您是否嘗試過保存基礎流本身?

File.WriteAllBytes(filename, stream.ToArray());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM