1

我正在将 excel 工作表公式转换为 java,但我不明白 excel 如何设法采用以下公式:0.22 应用公式:=TEXT(R5/14, "h:mm") 并以某种方式得出:0.22

如果我再次提供: 2.8 它到达 4.48 有人可以向我解释它是如何做到的。我已经阅读了一些关于十进制的内容并且我理解转换,但这还没有帮助解释上述内容。

4

5 回答 5

1

Excel 将日期时间值存储为:

  • 小数点左边的数字代表自 1900 年 1 月 1 日以来的天数
  • 小数点右边的数字代表一天 24 小时的小数部分

在您的示例中,您将小数转换为日期时间值的小时和分钟部分的文本表示。

通过你的第一个公式,0.22 除以 14(你为什么这样做?)等于 0.015714286。如果然后将此分数应用于 24 小时制(乘以 1440 分钟),则它等于 22 分钟和一些变化(即“0:22”)。

通过第二个公式,2.8 除以 14 等于 0.2。乘以 1440 等于 288 分钟,即 4 小时 48 分钟(即“4:48”)。

于 2008-09-30T02:28:32.647 回答
1

或者用于 Java 的 Abacus 公式编译器,它允许您将 Excel 工作表中的公式直接编译为 Java 字节码,以便从 Java 应用程序快速轻松地调用(可以在没有 JDK 的情况下在运行时编译)。

http://www.formulacompiler.org/

于 2009-06-09T06:30:29.407 回答
0

是的,这有点傻。取出 /14 会有帮助。基本上 1 = 1 天,因此 R5 以一天的 14 表示。你可能会做

int msInADay= 86400000;
Time value = new Time(R5/14 * msInADay);

但它未经测试。

于 2008-09-30T02:23:41.537 回答
0

谢谢克里登斯。

它适用于:双 r = 0.22;双驱动时间 = (r / 14) * 1440;

于 2008-09-30T03:13:00.560 回答
0

可以在 OpenFormula 规范(其中记录/定义 OpenOffice-Calc)中找到一个非常好的电子表格内部文档。

http://www.oasis-open.org/committees/documents.php?wg_abbrev=office-formula

如果您寻求 Java 库来评估 Excel 公式,Apache-POI 或 Pentaho 的 LibFormula 可能会有所帮助:

兴趣点:http: //poi.apache.org/

LibFormula: http: //sourceforge.net/project/showfiles.php ?group_id=51669&package_id=213669

于 2008-09-30T05:40:18.083 回答