Pergunta

Eu estou convertendo uma fórmula de folha de excel com java, mas eu não consigo entender como excel consegue tomar as seguintes: 0,22 Aplica-se uma fórmula: = TEXTO (R5 / 14, "h: mm") e de alguma forma chega: 0,22

Novamente, se eu fornecer: 2,8 chega a 4,48 Alguém por favor pode me explicar como ele faz isso. Eu li um pouco sobre decimal e eu entendo a conversão, mas isso ainda não ajudou a explicar o acima.

Foi útil?

Solução

Excel armazena data e hora valores como:

  • O número à esquerda do decimal representa o número de dias desde 01 de janeiro de 1900
  • O número à direita do decimal representa a parte fraccional de um dia de 24 horas

No seu exemplo, você está convertendo um decimal para uma representação textual das porções de hora e minuto do valor de data e hora.

Trabalho através de sua primeira fórmula, 0,22 dividido por 14 (por que você está fazendo isso?) É igual a 0,015714286. Se você, em seguida, aplicar esta fração contra um dia de 24 horas (multiplicar por 1440 minutos), que é igual a 22 minutos e alguma mudança (ou seja, "0:22").

Trabalho através de sua segunda fórmula, 2,8 dividido por 14 é igual a 0,2. Multiplicada por 1440, que é igual a 288 minutos, que é de 4 horas e 48 minutos (isto é, "4:48").

Outras dicas

Ou a Fórmula Abacus Compiler para Java, que permite compilar as fórmulas em folhas de Excel até ao código Java byte para fácil e rápido ligando de seus aplicativos Java (pode compilar em tempo de execução sem a JDK).

http://www.formulacompiler.org/

Sim, é um pouco pateta. Pegue a out / 14 e que ajuda. Basicamente 1 = 1 dia para R5 é expressa em 14ths de um dia. Você provavelmente poderia fazer

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

mas não foi testado.

Graças Creedence.

Ele funciona com: duplo r = 0,22; duplo DriveTime = (R / 14) * 1440;

A documentação muito boa de planilha internas podem ser encontrados na specififcation OpenFormula (que documentos / define OpenOffice-Calc).

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

Se você procurar um Java-Library para avaliar Excel-fórmulas, quer Apache-POI ou LibFormula do Pentaho pode ser útil:

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

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top