2013-03-29 2829 views
5

我在寫一個.NET程序,它生成一個在Excel中打開的XML文檔。該單元格通常是這樣的:如何在Excel中表示NaN值?

<ss:Cell> 
     <ss:Data ss:Type="Number">123</ss:Data> 
    </ss:Cell> 

但是偶爾我寫的值有NaN,DIV/0或INF。在這些情況下,123將被該文本值替換,並且由於文本原因Excel將不會打開該文件。

我不認爲Excel具有常量,所以我不確定如何處理這種差別,而不是將「-1」值代入。有什麼建議麼?

+0

以前從未與之合作過,但只是在黑暗中拍攝......如果將上述內容置於IF條件下會怎樣? –

+1

嘗試在Excel中設置值,將結果保存爲XML格式,並確認其值。 – code4life

回答

5

這裏有不同的錯誤代碼的Excel中知道,以XML格式存儲:

<Cell><Data ss:Type="Error">#DIV/0!</Data></Cell> 
<Cell><Data ss:Type="Error">#NUM!</Data></Cell> 
<Cell><Data ss:Type="Error">#VALUE!</Data></Cell> 
<Cell><Data ss:Type="Error">#N/A</Data></Cell> 
<Cell><Data ss:Type="Error">#NAME?</Data></Cell> 
<Cell><Data ss:Type="Error">#REF!</Data></Cell> 
<Cell><Data ss:Type="Error">#NULL!</Data></Cell> 

只有前兩個是有關你的問題,但我加入了他人的完整性的緣故。

但occasionly我寫的值或是NaN時,DIV/0,或INF

DIV/0映射到#DIV/0!。我不認爲Excel中的NaNINF有區別,它們似乎都表示爲#NUM!。例如,即使第一個數字是無效數字,而第二個數字非常大,以下兩個公式都會導致#NUM!

=ASIN(2) 
=EXP(EXP(10)) 

有趣的是,幾乎沒有強硬有用:Excel允許你不會有問題在工作表中輸入這些文字錯誤值(包括所有的標點)進入細胞。從某種意義上說,這些都是內置的常量。