我正在使用OpenXML编写电子表格实用程序,并且需要能够定期(甚至每次更新单元格)保存文档。保存后,文档必须处于有效(可读)状态。
我见过的唯一例子是文档处于损坏状态,直到
document.Close();
被调用。即使有定期调用
worksheet.Save();
在调用Close()
之前,文档将被破坏。
我需要能够快速保存文档,因为文档会长时间打开,经常写入,如果程序崩溃,我需要能够访问任何数据是在程序运行时编写的(显然我不能依赖于调用Close())。
我不一定需要用低级OpenXML来实现它,但我尝试过的所有包装器(ClosedXml,NPOI)似乎都有同样的缺点。
答案 0 :(得分:4)
使用the following打开文档。
using (SpreadsheetDocument document = SpreadsheetDocument.Open(docName, true))
{
}
当您指定true
时,该流标记为可编辑,并且可以动态接受修改。
请务必阅读this文章,该文章将为您提供有关如何利用开放XML流的一些示例。