将 OpenXML SpreadsheetDocument 保存到流中

问题描述 投票:0回答:1

我正在阅读从外部 Excel 文件流创建 OpenXml SpreadsheetDocument,并添加一些公式和值。

但是,当我尝试将其保存到流中时,它会丢失大部分数据并且无法打开。

这是我使用的代码:

var stream= new MemoryStream();
.
.
.
spreadsheetDocument.WorkbookPart.Workbook.Save(stream);
stream = new MemoryStream(stream.ToArray());
stream.Position = 0;

return stream;
c# excel openxml
1个回答
0
投票

两个

MemoryStream
真的有必要吗?

在从中派生新的

tempStream
之前尝试刷新
MemoryStream
。 示例:

spreadsheetDocument.WorkbookPart.Workbook.Save(tempStream);
tempStream.Flush();
stream = new MemoryStream(tempStream.ToArray());

此外,您是将输出保存到文件还是从内存中读取?一旦您

MemoryStream
.Close()
的内容从逻辑上讲就会丢失。

© www.soinside.com 2019 - 2024. All rights reserved.