【问题标题】:Possible to save OpenXML Spreadsheet without calling Close()?可以在不调用 Close() 的情况下保存 OpenXML 电子表格吗?
【发布时间】:2015-09-06 00:25:34
【问题描述】:

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

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

document.Close();

被调用。即使有定期调用

worksheet.Save();

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

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

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

【问题讨论】:

  • 请与我们分享您是如何打开文件的。
  • 一般来说,该文件可能已经存在并且可以通过 .Open() 打开,但在大多数情况下,该实用程序会根据指定的文件名创建一个电子表格,使用 .Open() 。创建()。

标签: c# .net spreadsheet openxml


【解决方案1】:

使用the following打开文档。

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

当您指定true 时,流被标记为可编辑,并且可以即时接受编辑。

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

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    相关资源
    最近更新 更多