2015-09-06 59 views
0

我正在使用OpenXML编写一个电子表格实用程序,并且需要能够定期(甚至每个单元格更新)保存该文档。保存之后,文档必须处于有效(可读)状态。可以在不调用Close()的情况下保存OpenXML Spreadsheet?

我见过离开文档中的损坏状态的唯一实例,直到

document.Close(); 

被调用。即使定期拨打

worksheet.Save(); 

该文档将被损坏,直到调用Close()

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

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

+1

请与我们分享您如何打开文件。 – Shimmy

+0

通常,该文件可能已经存在并可以通过.Open()打开,但在大多数情况下,该实用程序将使用基于指定文件名创建电子表格。创建()。 – odkken

回答

3

使用the following打开文档。

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

当您指定true流被标记为可编辑,并可以接受的飞行编辑。

请务必阅读this文章,这将为您提供一些关于如何与开放式XML流混合的示例。

相关问题