1

Excel シートの数式を Java に変換していますが、Excel がどのように次の式を取得するのか理解できません: 0.22

繰り返しますが、2.8 を指定すると、4.48 になります。私は小数について少し読んだことがあり、変換を理解していますが、これは上記の説明にはまだ役立っていません。

4

5 に答える 5

1

Excel は日時値を次のように保存します。

  • 小数点の左側の数字は、1900 年 1 月 1 日からの日数を表します
  • 小数点の右側の数値は、1 日 24 時間の小数部分を表します

あなたの例では、10 進数を datetime 値の時間と分の部分のテキスト表現に変換しています。

最初の式を計算すると、0.22 を 14 で割ると (なぜこれを行うのですか?)、0.015714286 になります。次に、この分数を 1 日 24 時間に対して適用すると (1440 分を掛ける)、22 分といくらかの変化 (つまり、「0:22」) に等しくなります。

2 番目の数式を使用すると、2.8 を 14 で割ると 0.2 になります。1440 を掛けると 288 分、つまり 4 時間 48 分になります (つまり、「4:48」)。

于 2008-09-30T02:28:32.647 に答える
1

または、Abacus Formula Compiler for Java を使用すると、Excel シートの数式を Java バイト コードにまでコンパイルして、Java アプリからすばやく簡単に呼び出すことができます (JDK なしで実行時にコンパイルできます)。

http://www.formulacompiler.org/

于 2009-06-09T06:30:29.407 に答える
0

ええ、それは少し間抜けです。/14 を取り出すと、それが役立ちます。基本的に1=1日なので、R5は14分の1で表されます。あなたはおそらくできる

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

しかし、それはテストされていません。

于 2008-09-30T02:23:41.537 に答える
0

Spreadsheet-internals の非常に優れた文書は、OpenFormula 仕様 (OpenOffice-Calc を文書化/定義する) にあります。

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

Excel-Formulas を評価するために Java-Library を探している場合は、Apache-POI または Pentaho の LibFormula が役立つ場合があります。

POI: http://poi.apache.org/

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

于 2008-09-30T05:40:18.083 に答える
0

ありがとうクリーデンス。

次のように動作します: double r = 0.22; ダブル ドライブ時間 = (r / 14) * 1440;

于 2008-09-30T03:13:00.560 に答える