可以在不调用Close()的情况下保存OpenXML Spreadsheet吗?

时间:2015-09-06 00:25:35

标签: c# .net spreadsheet openxml

我正在使用OpenXML编写电子表格实用程序,并且需要能够定期(甚至每次更新单元格)保存文档。保存后,文档必须处于有效(可读)状态。

我见过的唯一例子是文档处于损坏状态,直到

document.Close();

被调用。即使有定期调用

worksheet.Save();

在调用Close()之前,文档将被破坏。

我需要能够快速保存文档,因为文档会长时间打开,经常写入,如果程序崩溃,我需要能够访问任何数据是在程序运行时编写的(显然我不能依赖于调用Close())。

我不一定需要用低级OpenXML来实现它,但我尝试过的所有包装器(ClosedXml,NPOI)似乎都有同样的缺点。

1 个答案:

答案 0 :(得分:4)

使用the following打开文档。

using (SpreadsheetDocument document = SpreadsheetDocument.Open(docName, true))
{
}

当您指定true时,该流标记为可编辑,并且可以动态接受修改。

请务必阅读this文章,该文章将为您提供有关如何利用开放XML流的一些示例。