我如何在Excel中expressionNaN值?

我正在写一个.NET程序,它生成一个在Excel中打开的XML文档。 单元格通常是这样的:

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

但偶尔我写的值有NaN,DIV / 0或INF。 在这些情况下,123将被replace为该文本值,Excel将不会打开该文件,因为该文本。

我不认为Excel具有常量,所以我不确定如何处理这种简化,除了把“-1”值代入。 有什么build议么?

以下是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> 

只有前两个与您的问题有关,但为了完整起见,我添加了其他的。

但偶尔我写的值有NaN,DIV / 0或INF

DIV/0映射到#DIV/0! 。 我不认为Excel和NaNINF之间有区别,他们似乎都表示为#NUM! 。 例如,以下两个公式都会导致#NUM! 即使第一个是无效号码,而第二个是非常大的。

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

有趣的是,难以使用:Excel允许您在工作表上的单元格中input这些文字错误值(包括所有标点符号),而不会出现问题。 从某种意义上说,这些内置的常量。