我正在编写一个 .NET 程序,它生成一个在 Excel 中打开的 XML 文档。细胞通常看起来像:
<ss:Cell>
<ss:Data ss:Type="Number">123</ss:Data>
</ss:Cell>
但有时我写的值有 NaN、DIV/0 或 INF。在这些情况下,123 将被该文本值替换,并且 Excel 不会因为文本而打开文件。
我不认为 Excel 有常量,所以我不确定如何处理这种情况,而不是输入一个“-1”值。有什么建议么?
以下是 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 之间NaN
或INF
在 Excel 中没有区别,它们似乎都表示为#NUM!
. 例如,以下两个公式都导致#NUM!
,即使第一个是无效数字而第二个非常大。
=ASIN(2)
=EXP(EXP(10))
有趣,很难用:Excel 允许您毫无问题地将这些文字错误值(包括所有标点符号)输入到工作表的单元格中。从某种意义上说,这些是内置常量。