使用openxml从电子表格中读取公式

我正在使用Openxml库阅读C#中的电子表格,并使用InnerText属性parsingCell对象的值,该属性返回一个Stringnull

当在单元格中存在一个公式时,我会在电子表格中获得文本文本,如下所示:

工作表Sheet1 =!A1Content

即由以前的公式(Sheet1!A1)+结果(内容)的string组成,并且这种情况也会发生,如:= 2 + 24

我怎样才能得到公式的结果?

http://officeopenxml.com/文档:

对于公式,公式本身作为c的子元素存储在f元素中。 以下公式是元素内的实际计算值。

还有一个例子,这个打开xml的单个单元格:

 <cr="B9" s="3" t="str"> <f>SUM(B2:B8)</f> <v>2105</v> </c> 

所以在Cell元素中,有一个子Formula和一个CellValue的子元素。 单元格的InnerText属性是这两个值的连接值。 如果你已经有了你需要的单元,你可以执行以下操作:

 static string GetValue(Cell cell) { //The ? operator to make sure the 'CellValue' element exists, otherwise return null return cell.GetFirstChild<CellValue>()?.Text; }