문제

Excel 시트 공식을 Java로 변환하고 있지만 Excel이 다음을 수행하는 방법을 이해할 수 없습니다. 0.22는 다음을 수행합니다 : = 텍스트 (R5/14, "H : MM") 및 어떻게 든 0.22

다시 제공한다면 : 2.8 4.48에 도착합니다. 누군가가 어떻게 그렇게하는지 설명 해주세요. 나는 소수점에 대해 조금 읽었고 전환을 이해하지만 이것은 아직 위의 설명에 도움이되지 않았습니다.

도움이 되었습니까?

해결책

Excel은 DateTime 값을 다음과 같이 저장합니다.

  • 소수점의 왼쪽 숫자는 1900 년 1 월 1 일 이후의 일 수를 나타냅니다.
  • 소수점의 오른쪽에있는 숫자는 24 시간의 분수 부분을 나타냅니다.

예에서는 소수점을 DateTime 값의 시간 및 분 부분의 텍스트 표현으로 변환합니다.

첫 번째 공식을 통해 0.22를 14로 나눈 (왜 이렇게 하는가?)는 0.015714286입니다. 그런 다음 24 시간 (1440 분 곱하기)에 대해이 분수를 적용하면 22 분과 약간의 변화 (예 : "0:22")와 같습니다.

두 번째 공식을 통해 2.8을 14로 나눈 값은 0.2입니다. 1440을 곱하면 288 분, 4 시간 48 분 (예 : "4:48")과 같습니다.

다른 팁

또는 Java 용 Abacus Formula 컴파일러를 사용하면 Java 앱에서 빠르고 쉽게 호출 할 수 있도록 Excel 시트로 공식을 Java 바이트 코드로 컴파일 할 수 있습니다 (JDK없이 런타임에 컴파일 할 수 있음).

http://www.formulacompiler.org/

예, 약간 바보입니다. /14를 꺼내면 도움이됩니다. 기본적으로 1 = 1 일이므로 R5는 하루 14 일에 표현됩니다. 당신은 아마 할 수 있습니다

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

그러나 테스트되지 않았습니다.

감사합니다 신조.

다음과 같이 작동합니다 : Double R = 0.22; Double DriveTime = (R / 14) * 1440;

스프레드 시트 내부에 대한 매우 좋은 문서는 OpenFormula Scilefifcation (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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top