我从流中获取.xlsx文档(使用SpreadsheetDocument.Open(stream, false)
然后将其存储到Spreadsheetdocument字段中,以便稍后可以维护相同的对象。
我有一个保存方法,理想情况下我可以将SpreadsheetDocument保存到流中。有document..WorkbookPart.Workbook.Save(stream);
但只是给我一个空文件,当我只保存第一张表时(使用document.WorkbookPart.WorksheetParts.First().Worksheet.Save(stream);
文件很乱并且不包含相关信息。如何保存电子表格文档到流?
答案 0 :(得分:1)
我知道这有点老了但是在遇到同样的问题时我偶然发现了这个问题,所以我想用我找到的解决方案更新它。
我的问题是我需要将流位置设置回零。
stream.Position = 0;
从我的实验中,保存电子表格后流的位置是流的结尾。当我将流输出到Web浏览器时,它从当前位置启动流并运行到结束而不是从开始。我认为这与框架中的其他API一致。
答案 1 :(得分:0)
根据文档,SpreadsheetDocument.Close
保存并关闭OpenXml包以及所有底层部分流。
<强>更新强> 您是否尝试过保存基础流本身?
File.WriteAllBytes(filename, stream.ToArray());