是否有任何用于Apache POI Spreadsheets的库来处理公式的r / w,其精度高于double?

时间:2011-03-17 02:10:14

标签: java apache-commons apache-poi bigdecimal

最初我在BigDecimal之后使用的功能比简单的+ - * /更多,这远远小于java.lang.Math上可用的功能。

请不要评论罪和类似的功能产生或要求不合理的数字。这个问题的简单答案是使用具有适当/合理精度限制的MathContext。我最初只选择了BigDecimal,因为它提供了更多的精度数字,可以加倍。

我的一个想法是利用Apache Poi库,希望它包含一个工作的Function接口,它可以为电子表格中的所有功能(可能不是全部)提供真正的实现。不幸的是,浏览javadoc我找不到任何类似命名的接口/类。

  • 是否还有其他库可以帮助在poi excel单元格上使用精度高于double的东西来进行数学运算?
  • 我能说的最好是利用apache commons math?
  • 似乎org.apache.poi.hssf.record.formula.functions。*中的数字相关函数只能使用w / double。

2 个答案:

答案 0 :(得分:1)

是的,Andy Khan的JExcel可以处理formulas

答案 1 :(得分:1)

excel格式在内部将所有数字存储为double。因此,虽然您可以计算出更高精度的答案,但如果将它们存储回excel文件中,则会松开它。另外,如果你有擅长计算值本身,那么它保存的答案将限制为双精度。

如果您想使用POI进行公式评估,那么主要是围绕评估单元格的内容进行设置。一种选择是创建一个单元格,将公式设置为单元格然后进行评估。 See the Apache POI eval documentation了解详情。

org.apache.poi.ss.formula.functions包中包含POI支持的所有excel公式函数实现,但它们可能对您来说有点低级(它们适用于Ptgs,Ops等)