打开xml查询excel单元格

Jos*_*e3d 7 c# excel openxml

过去,我创建了一个组件,用于使用excel库传递和从excel检索值.好的一点是,一旦你的工作簿在内存中并修改了一个单元格(我们称之为原始单元格),所有其他具有获取此原始单元格值的公式的单元格将自动刷新.

这可能在OpenXml中吗?

据我所知,显然这在OpenXml中不会发生,因为excel引擎并不是真的在后台执行,OpenXml只是一组用于序列化,反序列化,读取等xml文件的类吗?

Sam*_*eff 3

没错,Office Open XML SDK 只是一组用于读取/写入 XML 文件的库。它不具有任何执行计算的功能。

您可以通过设置以下属性来指定 Excel 应在加载时重新计算所有内容,但如果您需要读取代码中的新值(在 Excel 中重新打开之前),这将无济于事。

<workbook> 
  <calcPr fullCalcOnLoad="1"/> 
</workbook> 
Run Code Online (Sandbox Code Playgroud)

或者使用 Office Open XML SDK 编写代码。

using (var doc = SpreadsheetDocument.Open(path, false))
{
    doc.WorkbookPart.Workbook.CalculationProperties.FullCalculationOnLoad = true;
    .
    .
    .
}
Run Code Online (Sandbox Code Playgroud)