Por que o Excel estraga códigos em arquivos CSV
CSV é um formato de texto: não tem tipos. Quem abre o arquivo inventa os tipos. O Excel os inventa de forma agressiva, e é exatamente por isso que os códigos quebram nele — CPF, CNPJ, CEP, códigos de produto e números de conta.
Três jeitos de perder dados com um clique duplo
Zeros à esquerda
O valor 00123 parece um número, então o Excel o transforma no número 123. Os zeros não ficam escondidos — sumiram. Salve de volta em CSV e 123 é o que vai para o arquivo. Isso afeta CEPs como 01310100, CPFs que começam com zero, códigos de barras, números de conta e matrículas de funcionários.
Notação científica
O identificador 7812345678901234 vira 7,81235E+15. Parece um problema de exibição, mas não é. O mesmo vale para um CNPJ ou uma chave de NF-e (44 dígitos) em uma coluna numérica.
Perda de precisão
O Excel guarda números em precisão dupla, que são 15–16 dígitos significativos. Um identificador de dezesseis dígitos está no limite, um de dezessete já passou dele: os dígitos finais são trocados por zeros para sempre. Alargar a coluna não ajuda — os dados já se perderam. Uma chave de acesso de NF-e, com 44 dígitos, perde quase tudo.
Texto que apenas lembra uma data também sofre: o Excel transforma sem cerimônia um código de produto como 1-2 ou MAR1 em uma data.
Por que “mudar o formato da célula” não salva
O formato da célula muda como o valor é exibido, não o que ele contém. Quando você muda o formato, a conversão já aconteceu durante a leitura do arquivo. A única saída é não deixar o Excel decidir por você na hora de abrir.
Abordagens que funcionam
- O assistente de importação de texto. Não dê clique duplo no arquivo; importe-o: Dados → De Texto/CSV, e para cada coluna de códigos escolha o tipo Texto. Chato, mas funciona.
- Aspas não ajudam. Um engano comum: o Excel ainda reconhece
"00123"como número. As aspas em um CSV só marcam os limites de um campo. - Um apóstrofo na frente. Se você gera o CSV, o Excel mostra
'00123como texto — mas o apóstrofo passa a fazer parte dos dados para todos os outros programas. - Não abrir no Excel. Se a tarefa é olhar, filtrar, conferir ou exportar um subconjunto, um Excel intermediário simplesmente não é necessário.
Como é feito aqui
O tipo de uma coluna é decidido por uma amostra de valores, com três regras que o Excel ignora:
- um valor com zero à esquerda faz de toda a coluna texto;
- uma coluna em que todos os valores têm o mesmo tamanho de onze ou mais dígitos é tratada como código, não como número — é assim que se comportam CPFs, números de conta e documentos;
- valores com mais de 15 dígitos são sempre texto — além desse limite a aritmética de precisão dupla mente.
Ao exportar para XLSX, essa coluna continua texto, então não sobra nada para o Excel “consertar”. E para conferir se os CPFs e CNPJs da coluna estão válidos, veja como validar CPF, CNPJ e CEP em uma planilha.
Perguntas frequentes
Dá para trazer de volta os zeros perdidos?
Se você sabe o tamanho do código, sim: complete com zeros à esquerda (um CPF tem 11 dígitos, um CEP 8, um CNPJ 14). Se a precisão de um número longo se perdeu, não — esses dígitos não podem ser restaurados.
O Google Planilhas se comporta do mesmo jeito?
De modo parecido: os zeros à esquerda são descartados e números longos são arredondados. Os detalhes variam, a essência é a mesma.
Então por que todo mundo usa CSV?
Porque qualquer coisa o lê. O problema não é o formato, mas o fato de os tipos não estarem escritos, então cada leitor os adivinha por conta própria.
Grátis para uso pessoal. Seu arquivo não é enviado a nenhum servidor. Versão para Windows — 3.5 MB, sem instalação: detalhes. Para organizações — licença.