我正在使用Openxml库在C#中阅读电子表格,并且我使用 InnerText propierty解析 Cell 对象的值,返回字符串或 null 。
当 Cell 出现公式时,我会得到电子表格中的文字文字,如下所示:
= Sheet 1中!A1Content
由以下组成:前公式(Sheet1!A1)+结果字符串(内容) 这也发生在以下基础知识中:= 2 + 24
我如何才得到公式的结果?
答案 0 :(得分:1)
来自http://officeopenxml.com/文档:
对于公式,公式本身作为 c 的子元素存储在 f 元素中。 公式之后是元素中的实际计算值。
还有一个例子,这个单个单元格的开放式xml:
<c r="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;
}