Domanda

Sto convertendo una formula di foglio Excel in Java ma non riesco a capire come Excel riesca a prendere quanto segue: 0.22 Applica una formula: = TESTO (R5 / 14, "h: mm") e in qualche modo arriva a: 0.22

Ancora una volta se fornisco: 2.8 arriva alle 4.48 Qualcuno può spiegarmi come fa. Ho letto un po 'di decimale e capisco la conversione, ma questo non ha ancora contribuito a spiegare quanto sopra.

È stato utile?

Soluzione

Excel memorizza i valori datetime come:

  • Il numero a sinistra del decimale rappresenta il numero di giorni dal 1 ° gennaio 1900
  • Il numero a destra del decimale rappresenta la parte frazionaria di un giorno di 24 ore

Nel tuo esempio, stai convertendo un decimale in una rappresentazione testuale delle porzioni di ore e minuti del valore datetime.

Lavorando attraverso la tua prima formula, 0,22 diviso per 14 (perché lo stai facendo?) equivale a 0,015714286. Se poi applichi questa frazione per un giorno di 24 ore (moltiplicalo per 1440 minuti), equivale a 22 minuti e alcune modifiche (ovvero "0: 22").

Lavorando attraverso la tua seconda formula, 2.8 diviso per 14 è uguale a 0,2. Moltiplicato per 1440, equivale a 288 minuti, ovvero 4 ore e 48 minuti (vale a dire "4: 48").

Altri suggerimenti

O Abacus Formula Compiler per Java, che ti consente di compilare le formule nei fogli Excel fino al codice byte Java per chiamate veloci e facili dalle tue app Java (puoi compilare in fase di esecuzione senza JDK).

http://www.formulacompiler.org/

Sì, è un po 'sciocco. Prendi il / 14 e questo aiuta. Fondamentalmente 1 = 1 giorno, quindi R5 è espresso in 14 ° di un giorno. Probabilmente potresti farlo

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

ma non è testato.

Grazie Creedence.

Funziona con: doppio r = 0,22; double driveTime = (r / 14) * 1440;

Un'ottima documentazione di Spreadsheet-internals può essere trovata nella specifica di OpenFormula (che documenta / definisce OpenOffice-Calc).

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

Se cerchi una libreria Java per valutare le formule di Excel, Apache-POI o la LibFormula di Pentaho possono essere utili:

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

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top