【发布时间】:2016-02-12 17:23:06
【问题描述】:
我正在使用来自 apache 的 POI 从 Java 程序中的 Excel 文件中读取。 excel 有我在 Java 中复制的宏,但是当我比较结果时,我试图尽可能地消除小的舍入差异。 下载 POI 3.13 的代码并在调试模式下运行后,我意识到它们没有像 Excel 那样处理数字,Excel 只使用 15 位数字并在之后添加非有效 0,而是使用 17 位数字表示。你可以看到here。 但更深入一点,似乎 POI 正在使用 openxml,并且 openxml Cell 已经将浮点数存储在 17 位而不是 15 位上......所以在我看来,在 openxml 中处理数字时存在错误,但我很惊讶以前没有发现像处理浮点数一样“大”的东西,因为我找不到任何关于它的东西。
所以我的问题是:在使用 POI 时,是否有一种解决方法可以获得完全相同的 15 位 Excel?更好的是,openxml 是否可以被纠正为在这件事上表现得像 Excel?
【问题讨论】:
标签: java excel floating-point apache-poi openxml