Como os números inteiros são armazenados no Excel

2

Eu escrevi um script python que usa os pacotes CSV e xlrd para converter um arquivo .xlsx excel para um arquivo .txt delimitado por tabulações. Infelizmente, cada célula é convertida em uma string (o que é compreensível), e todo número inteiro é convertido em um float representado como uma string. Por exemplo:

Uma célula no excel tem o inteiro 5.

Esta será a saída do meu script como "5.0".

Devido a processos downstream, é essencial manter a consistência de tipos entre o arquivo original do Excel e o arquivo .txt convertido. É bastante desafiador decifrar os tipos de dados após a conversão, porque pode ser impossível dizer ao tempo que um número era originalmente um número inteiro ou um ponto flutuante sem olhar para o arquivo original.

Minha pergunta final é a seguinte:

  1. O excel salva todos os valores numéricos como flutuantes automaticamente?

  2. Se sim, existe uma maneira de ajustar as configurações para permitir inteiros?

Obrigado.

    
por Malonge 23.02.2015 / 21:10

1 resposta

1

O Excel usa apenas alguns tipos de dados nas planilhas. Eu citação :

types always arrive in your function as one of the following types: xltypeNum, xltypeStr, xltypeBool, xltypeErr, xltypeMulti, xltypeMissing, or xltypeNil

Então você pode ver que esperar Integers não se encaixa no conceito. xltypeNum abrange todos os números (incluindo seus equivalentes, como valores de data / hora) e, em VBA, aparece como Double .

    
por 23.02.2015 / 21:42