用Java表示Excel公式(十进制到时间解释)
我正在将excel工作表公式转换为java,但我无法理解excel如何处理以下内容:0.22 应用公式:=文本(R5/14,“h:mm”) 不知怎的,结果是:0.22 同样,如果我提供:2.8 4点48分到达用Java表示Excel公式(十进制到时间解释),java,excel,datetime,decimal,Java,Excel,Datetime,Decimal,我正在将excel工作表公式转换为java,但我无法理解excel如何处理以下内容:0.22 应用公式:=文本(R5/14,“h:mm”) 不知怎的,结果是:0.22 同样,如果我提供:2.8 4点48分到达 有人能给我解释一下它是怎么做到的吗。我读了一些关于十进制的书,我理解了转换,但这还没有帮助解释上面的内容。是的,这有点愚蠢。取出/14,这会有所帮助。基本上1=1天,因此R5以一天的14分之一表示。你也许可以 int msInADay= 86400000; Time value = new
有人能给我解释一下它是怎么做到的吗。我读了一些关于十进制的书,我理解了转换,但这还没有帮助解释上面的内容。是的,这有点愚蠢。取出/14,这会有所帮助。基本上1=1天,因此R5以一天的14分之一表示。你也许可以
int msInADay= 86400000;
Time value = new Time(R5/14 * msInADay);
但这是未经测试的 Excel将日期时间值存储为:
- 小数点左边的数字表示自1900年1月1日以来的天数
- 小数点右边的数字表示一天24小时的小数部分
双驱动时间=(r/14)*1440 在OpenFormula规范(记录/定义OpenOffice Calc)中可以找到一个非常好的电子表格内部文档 如果您寻求Java库来评估Excel公式,Apache POI或Pentaho的LibFormula可能会有所帮助: POI:
LibFormula:或Abacus Formula Compiler for Java,它允许您在Excel工作表中编译公式,直到Java字节码,以便从Java应用程序快速轻松地调用(可以在运行时编译,无需JDK)
需要澄清一下:它需要0.22,应用公式并达到0.22?如果提供2.8,则返回4.48?