OpenXML – 如何将电子表格文档保存到stream?
我从stream中获取.xlsx文档(使用SpreadsheetDocument.Open(stream, false)
然后将其存储到Spreadsheetdocument字段中,以便稍后可以维护同一个对象。
我有一个保存方法,我应该在理想情况下能够将SpreadsheetDocument保存到一个stream。 有document..WorkbookPart.Workbook.Save(stream);
但是这只是给我一个空的文件,当我只保存第一张(使用document.WorkbookPart.WorksheetParts.First().Worksheet.Save(stream);
该文件是一个混乱,不包含相关信息。将电子表格文档保存到stream中?
我知道这是有点老,但当我遇到同样的问题时,我偶然发现了问题,所以我想用我find的解决scheme更新它。
我的问题原来是,我需要设置stream的位置归零。
stream.Position = 0;
从我的实验中,一旦电子表格被保存,stream的位置就是stream的结束。 当我输出我的stream到networking浏览器时,它从当前位置开始stream并运行到结束,而不是从一开始就开始。 我会认为这是与框架中的其他API的一致。
根据文档, SpreadsheetDocument.Close
保存并closuresOpenXml包加所有底层部分stream。
更新:你有没有尝试保存底层的stream本身?
File.WriteAllBytes(filename, stream.ToArray());