Você pode colocar o número entre aspas e adicionar um sinal de igual antes, assim: ="001145"
(isso é no CSV, é claro)
Eu tenho alguns dados em um banco de dados que usa ids que têm a forma de 16 dígitos. Em algumas situações, eu preciso exportar os dados de forma que possam ser manipulados no Excel.
Para exportar os dados para um arquivo e importá-los para o Excel.
Eu tentei vários formatos de arquivo e estou preso.
O problema que estou enfrentando é que, ao ler um arquivo no Excel com uma célula que parece um número, o Excel o trata como um número.
O problema é que (até onde eu posso dizer) todos os valores numéricos no excel são pontos flutuantes de precisão dupla que têm uma precisão de menos de 16 dígitos. Então meus ids são alterados: muitas vezes o último dígito é alterado para 0.
Até agora só consegui convencer o excel a manter o Id inalterado, quebrando-o: adicionando uma letra ou símbolo ao Id. No entanto, isso significa que, para usar o valor novamente, ele deve ser "ininterrupto".
Existe uma maneira de criar um arquivo no qual eu possa especificar que o Excel deve tratar o valor como um texto sem alterar o valor? Ou existe uma maneira de deixar o excel tratar o valor como um longo (inteiro de 64 bits)?
A maneira padrão de forçar algo que parece um número a ser tratado como texto é colocar uma única citação, a.k.a. apostrophe ( '), na frente dela.
Você pode forçar o Excel a importar isso como texto de um arquivo .csv. Depois de criar seu arquivo .csv,
Data > From Text
Delimited
Comma
Text data format
. O Excel tratará sua longa coluna de ID como texto desde o início, em vez de tentar convertê-la em um número e depois voltar ao texto com a perda de dados resultante.
Veja um exemplo da mesma cadeia de dados sendo importada e formatada de três maneiras diferentes de .csv:
Note, se você tentar abrir o .csv diretamente (o que o Excel fará com prazer por você), você já estará além do ponto de poder atribuir um valor de tipo de dados a suas colunas - o Excel terá feito isso (erroneamente) para você.
Além do que classifiquei como resposta creditada, descobri que no LibreOffice eu posso exportar uma planilha no que eles chamam de "Excel 2003 xml". Esse formato é um XML que parece muito fácil de gerar e tem esse tipo de definição para uma célula em uma planilha:
<Cell>
<Data ss:Type="String">12345678901234567890</Data>
</Cell>
<Cell>
<Data ss:Type="Number">1.23456789012346E+019</Data>
</Cell>
Quando eu simplesmente dou tal xml a extensão xlsx, meu LibreOffice é aberto corretamente sem nenhuma pergunta.
Tags import microsoft-excel