Exportação do Excel avalia funções ao abrir

2

Eu tenho uma pergunta sobre a abertura de folhas de excel de exportação pelo excel. Eu tenho um aplicativo que exporta para o Excel, que é construído com OutSystems (plataforma de desenvolvimento de PaaS). Ao abrir a primeira vez em torno de quaisquer fórmulas como = 1 + 1 não são avaliadas, mas mostradas apenas no texto. Quando clico duas vezes nessas células e pressiono enter elas são avaliadas.

Estou usando o excel 2010 e 365 (testado em dois computadores). A avaliação automática de fórmulas está ativada e quando eu digito = 1 + 1 eu sou avaliado imediatamente.

É assim também para todas as versões antigas do Excel? E posso colocar algo em uma célula para fazer o excel avaliar as fórmulas?

    
por Wealot 27.03.2017 / 13:41

1 resposta

1

Sei que é muito tarde, mas achei que gostaria de comentar, já que corri o mesmo ao tentar exportar dados semelhantes de um site que estava desenvolvendo. O que fiz foi cavar o XML subjacente, alterando a extensão .xlsx para um arquivo .zip ( por esta sugestão ). Foi aqui que pude ver que o Excel normalmente constrói uma célula com uma fórmula como esta:

<c r="J14" s="1"><f>H15*1.5</f><v>0</v></c>

A fórmula está na tag <f> , <v> é o valor. Quando você tenta codificar uma fórmula em uma célula de um programa de terceiros, ela ignora completamente a tag <f> . Portanto, o Excel não sabe como interpretá-lo corretamente. Acredito que algo semelhante acontece com arquivos .xls, mas como eles não têm a estrutura XML subjacente, não pude inspecionar o arquivo.

Consegui corrigir meu problema usando o SheetJS, no entanto, isso está codificado no site. Quanto a uma correção offline, a solução mais limpa que pude encontrar é ter uma macro fazendo o truque "replace = with=", mas mesmo isso é mais pesado do que eu esperava e não funcionaria para mim devido aos sistemas que usar. A verdadeira solução seria para o aplicativo que faz a exportação interpretar o texto da célula antecipadamente e construir células em um formato <f>formula</f><v>value</v> quando o texto resultante começa com um sinal de igual.

    
por 16.08.2018 / 15:05