2016-01-25 82 views
0

我讀C#中的電子表格中使用openxml庫,並且我使用的innerText propierty解析細胞對象的值,即返回字符串null從電子表格讀取與式OPENXML

細胞存在一個公式,我得到目前在電子表格中的文字文本,這樣的:

= Sheet1中A1Content

由組成:前一個分子式(工作表Sheet1! A1)+字符串的結果(內容) 這種情況也會發生,如:= 2 + 24

我怎樣才能得到公式的結果?

+1

你嘗試了谷歌搜索'C#從表格中讀取一個公式與OPENXML'http://openxmldeveloper.org/blog/ b/openxmldeveloper/archive/2012/11/04/formula-processing-in-spreadsheetml.aspx – MethodMan

+0

我搜索過但我沒有找到該鏈接。我會從那裏開始。 – Ozeta

+0

@MethodMan我讀了這個頁面,但沒有找到有用的東西。我理解了公式的結構,但並沒有關於它的閱讀,因爲我理解它 – Ozeta

回答

1

http://officeopenxml.com/文檔:

對於公式,本身存儲的˚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; 
} 
+0

嗨亞歷山大,也許你的意思是一個單元元素? – Ozeta

+0

@Ozeta是的,我的壞,編輯它 –

相關問題