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.