打开XML来查询Excel单元格

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

这在OpenXml中可能吗?

据我所见,显然这不会发生在OpenXml中,因为Excel引擎并没有在后台真正执行,OpenXml只是一组类来序列化,反序列化,读等xml文件吧?

这是正确的,Office Open XML SDK只是一组读取/写入XML文件的库。 它没有任何执行计算的function。

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

<workbook> <calcPr fullCalcOnLoad="1"/> </workbook> 

或者在Office Open XML SDK的代码中

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