7

我正在编写一个 .NET 程序,它生成一个在 Excel 中打开的 XML 文档。细胞通常看起来像:

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

但有时我写的值有 NaN、DIV/0 或 INF。在这些情况下,123 将被该文本值替换,并且 Excel 不会因为文本而打开文件。

我不认为 Excel 有常量,所以我不确定如何处理这种情况,而不是输入一个“-1”值。有什么建议么?

4

1 回答 1

7

以下是 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在 Excel 中没有区别,它们似乎都表示为#NUM!. 例如,以下两个公式都导致#NUM!,即使第一个是无效数字而第二个非常大。

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

有趣,很难用:Excel 允许您毫无问题地将这些文字错误值(包括所有标点符号)输入到工作表的单元格中。从某种意义上说,这些内置常量。

于 2013-03-29T23:39:14.937 回答