簡體   English   中英

使用openxml從電子表格中讀取公式

[英]reading a formula from a spreadsheet with openxml

我正在使用Openxml庫在C#中讀取電子表格,並且正在使用InnerText屬性解析Cell對象的值,該屬性返回Stringnull

單元格中出現公式時,我將在電子表格中獲得文字文本,如下所示:

= Sheet1!A1Content

它由以下組成:以前的公式(Sheet1!A1)+結果的字符串(Content),並且這種情況也會發生,例如= 2 + 24

我如何只得到公式的結果?

http://officeopenxml.com/文檔:

對於公式,公式本身存儲在f元素內作為c的子元素。 公式之后是元素內的實際計算值。

還有一個示例,此打開的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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM