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