【问题标题】:NPOI number wrong format readNPOI 编号错误格式读取
【发布时间】:2013-11-29 00:03:13
【问题描述】:

我有一个 xlsx 文件并尝试从中读取数字并将它们放入另一个文件中。问题是,有些数字被错误地读取,我不知道为什么。例如:

Number in excel | Number read
-----------------------------
139,8           | 1,398E+16
2,2             | 2,2E+16

有趣的是,这个问题只发生在某些数字上。所有数字的格式都是相同的。 NPOI 从 excel 中读取准确的数字,而不是格式化的,所以我检查了值,但嘿,都和格式化的一样。

好的,我想我发现了一个问题。现在我只需要找到解决方案。我提取了 xlsx 文件并检查了存储在单元格中的实际值。问题是当我有值139.80000000000001 时,它被读取为1,398E+16,所以我猜 NPOI 解释格式错误。它认为。 (点)分隔数千,而它没有。

【问题讨论】:

  • 现在我在读取值之前将单元格类型设置为STRING。然后我将'.' 替换为',' 并将其转换为double。它对我有用,但也许有更好的方法来实现它?
  • 不幸的是,我在 nuget 版本 2.4.1 中遇到了与 NPOI 相同的问题。我想知道问题又回来了?

标签: number-formatting xlsx npoi


【解决方案1】:

为了记录,我刚刚从 Alpha 更新到了 Beta,并且成功了。现在我得到了单元格上的确切值。

测试版可以在here找到。

【讨论】:

    【解决方案2】:

    看起来这是一个已知问题,并且计划在即将发布的NPOI 2.0 beta 1 release 中修复:

    发行说明

    • ...

    • 修正用逗号而不是点分隔的小数

    【讨论】:

      【解决方案3】:

      它看起来是 NPOI 2.0 alpha 中的一个错误。如果仍然存在,请尝试 NPOI 2.0 beta 1,我们将计划在 2.0 最终版本中修复它

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-22
        相关资源
        最近更新 更多