Pregunta

Estoy convirtiendo una fórmula de hoja de Excel a Java, pero no puedo entender cómo Excel logra tomar lo siguiente: 0.22 Aplica una fórmula: = TEXTO (R5 / 14, "h: mm") y de alguna manera llega a: 0.22

Nuevamente si proporciono: 2.8 llega a las 4.48 ¿Puede alguien explicarme cómo hace esto? He leído un poco sobre el decimal y entiendo la conversión, pero esto aún no ha ayudado a explicar lo anterior.

¿Fue útil?

Solución

Excel almacena valores de fecha y hora como:

  • El número a la izquierda del decimal representa el número de días desde el 1 de enero de 1900
  • El número a la derecha del decimal representa la porción fraccional de un día de 24 horas

En su ejemplo, está convirtiendo un decimal en una representación textual de las porciones de hora y minutos del valor de fecha y hora.

Trabajando en tu primera fórmula, 0.22 dividido por 14 (¿por qué haces esto?) es igual a 0.015714286. Si luego aplica esta fracción contra un día de 24 horas (multiplique por 1440 minutos), es igual a 22 minutos y algún cambio (es decir, `` 0: 22 '').

Trabajando a través de su segunda fórmula, 2.8 dividido por 14 es igual a 0.2. Multiplicado por 1440, equivale a 288 minutos, que son 4 horas y 48 minutos (es decir, `` 4: 48 '').

Otros consejos

O el Abacus Formula Compiler para Java, que le permite compilar las fórmulas en hojas de Excel hasta el código de bytes de Java para llamadas rápidas y fáciles desde sus aplicaciones Java (puede compilar en tiempo de ejecución sin el JDK).

http://www.formulacompiler.org/

Sí, es un poco tonto. Saca el / 14 y eso ayuda. Básicamente 1 = 1 día, por lo que R5 se expresa en 14 de un día. Probablemente podrías hacer

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

pero no ha sido probado.

Gracias Creedence.

Funciona con: doble r = 0.22; double driveTime = (r / 14) * 1440;

Se puede encontrar una muy buena documentación de las hojas de cálculo internas en la especificación de OpenFormula (que documenta / define OpenOffice-Calc).

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

Si busca una biblioteca Java para evaluar las fórmulas de Excel, Apache-POI o LibFormula de Pentaho pueden ser útiles:

PDI: http://poi.apache.org/

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top