mygems

CSV vs XLSX: qual formato usar e quando

CSV é um arquivo de texto com vírgulas. XLSX é um arquivo compactado de aplicativo. Essa diferença decide tudo: tamanho, fórmulas, datas e quem consegue abrir.

Por uos ·

Uma frase explica quase tudo: CSV é um arquivo de texto com vírgulas; XLSX é uma pasta compactada de XML que só um programa de planilhas entende. Quase toda diferença prática decorre disso.

A pergunta útil raramente é "qual é melhor". É "para quem vou entregar este arquivo e o que vai sobreviver no caminho".

A resposta rápida

  • Entregar dados a um programa (importação, API, script, banco de dados): CSV.
  • Entregar um documento a uma pessoa (formatação, fórmulas, várias planilhas): XLSX.
  • O arquivo é grande (digamos, mais de 100 MB ou 500.000 linhas): CSV.
  • Os valores precisam voltar exatamente como saíram (CEPs, códigos de produto, números de telefone, IDs longos): CSV, e avise disso, porque a planilha que receber o arquivo é quem vai estragar os valores.

O que cada um realmente é

Um CSV tem uma linha por registro, valores separados por vírgulas e aspas em volta de qualquer valor que contenha vírgula. Dá para ler um em um editor de texto. Dá para escrever um com echo. Existe uma especificação, a RFC 4180, e um acordo quase universal de ignorar partes dela, e é por isso que os delimitadores variam de país para país e que CSVs quebrados são um assunto à parte.

Ele guarda valores e mais nada. Sem tipos, sem formatos, sem fórmulas, sem cores, sem segunda planilha. Uma célula com 007 e uma célula com o número sete ficam indistinguíveis depois de gravadas: as duas são só os caracteres entre duas vírgulas, e o que acontece depois depende inteiramente de quem as lê.

Um XLSX é um arquivo ZIP. Renomeie um para .zip, descompacte e você terá um diretório de XML: um arquivo por planilha, uma tabela de strings compartilhadas, uma tabela de estilos, arquivos de relacionamento. Ele guarda tudo o que uma planilha sabe: tipos de célula, formatos numéricos, fórmulas e seus resultados em cache, gráficos, formatação condicional, painéis congelados, macros na variante .xlsm.

Lado a lado

CSVXLSX
Tipo de arquivoTexto simplesArquivo XML compactado
Limite de linhasNenhum1.048.576 por planilha
Limite de colunasNenhum16.384
Várias planilhasNãoSim
FórmulasNãoSim
Formatação, gráficosNãoSim
Tipos de dadosNenhum: tudo é textoExplícito em cada célula
Tamanho, 1 M de linhas × 10 colunas~150 MB~40 MB
Abre em um editor de textoSimNão
Legível em 20 anosQuase certamenteProvavelmente
Diffs no gitLimposImpossíveis

Duas linhas merecem uma explicação.

Tamanho, e por que a resposta se inverte

O XLSX é compactado, então para os mesmos dados costuma ocupar menos espaço em disco, muitas vezes três ou quatro vezes menos. Isso faz o CSV parecer a escolha errada para dados grandes, e é justamente o contrário.

Num arquivo grande, o que importa não é o tamanho em disco, e sim o que acontece ao abrir. Um XLSX precisa ser descompactado e analisado até virar um modelo de objetos antes de você ver a primeira linha; tudo vai para a memória. Um CSV pode ser lido linha a linha, então uma ferramenta consegue processar em fluxo um arquivo de 5 GB que nunca caberia inteiro na memória. É por isso que toda resposta a "como processar este arquivo com DuckDB" começa com um CSV, e por isso que o limite de linhas acima importa: uma exportação de três milhões de linhas não pode ser um XLSX em uma única planilha, seja qual for o tamanho.

Tipos, e a viagem de ida e volta que come seus dados

Esta é a diferença que de fato dá trabalho às pessoas.

Como o CSV não carrega tipos, a planilha precisa adivinhar na importação. Os palpites são consistentes e consistentemente errados, sempre das mesmas quatro formas:

  • 01234 vira 1234: o zero à esquerda de um CEP some.
  • 4019283746501928 vira 4.01928E+15: um ID em notação científica, e os últimos dígitos se perdem, não ficam apenas ocultos.
  • 3/4/2026 vira 4 de março ou 3 de abril, dependendo da configuração regional.
  • MAR1, SEPT2, DEC5 viram datas. Por causa disso, pesquisadores de genes renomearam 27 genes humanos em 2020.

Abra um CSV no Excel, salve de volta como CSV e essas mudanças passam a ser permanentes no arquivo. O CSV não perdeu os dados. A planilha em que você o abriu perdeu. E esse é o argumento para ler um CSV com algo que o leia como CSV, e não como um documento de planilha:

CSV File Viewer - Smart CSViPhone e iPad · Android

Lê o arquivo como CSV em vez de importá-lo: sem conversão de tipos, sem adivinhar datas pela região, e com consultas em SQL ou em linguagem natural sobre os valores exatamente como foram escritos.

O que ele faz

Escolhendo, por situação

Use CSV quando:

  • Do outro lado há algo automatizado: uma importação para banco de dados, um script, uma API.
  • O arquivo é grande ou está crescendo.
  • Os dados precisam ir e voltar byte a byte.
  • Ele vai para o controle de versão e você quer ver o que mudou.
  • Você precisa que seja legível daqui a uma década, sem suposições sobre software.

Use XLSX quando:

  • Uma pessoa vai abri-lo e o layout faz parte da mensagem.
  • Há fórmulas que precisam continuar ativas.
  • Os dados são de fato de várias planilhas.
  • Os tipos de célula importam e você não controla o que vai abrir o arquivo. Esse é o argumento honesto a favor do XLSX: tipos que o destinatário não consegue interpretar errado.
  • Você precisa de gráficos, filtros ou formatação condicional dentro do próprio arquivo.

Não use nenhum dos dois quando: o conjunto de dados é maior que uma planilha e você vai consultá-lo repetidamente. Isso é trabalho para Parquet ou para um banco de dados. Parquet é colunar, tipado e compactado, e tanto o DuckDB quanto o pandas o leem nativamente.

O que as pessoas entendem errado

"CSV é um formato do Excel." Não é; o Excel apenas o abre, e é por isso que a conversão de tipos acima acontece. O CSV é vinte anos mais antigo que o Excel.

"XLS e XLSX são a mesma coisa." XLS é o formato binário anterior a 2007, que ainda aparece vindo de sistemas antigos. XLSX é o substituto baseado em OOXML. Se receber um .xls, converta. O Excel atual o abre com avisos e algumas ferramentas o recusam de vez.

"XLSX é mais seguro porque é um formato de verdade." O XLSX pode carregar macros, links externos e cargas DDE; o CSV é texto inerte, exceto pela injeção de fórmulas, em que um valor começando com =, +, - ou @ é executado pela planilha que o abre. Os dois exigem cuidado, em direções diferentes.

"Converter não perde nada." De XLSX para CSV somem todas as fórmulas (você fica com o último valor calculado), todas as planilhas além da primeira e toda a formatação. De CSV para XLSX são adicionados tipos que nunca estiveram nos dados, e é aí que os valores são estragados. Converter um CSV em Excel no celular mostra como fazer isso sem danos.

O único hábito que vale a pena

Quando enviar a alguém um CSV com códigos, IDs ou datas, diga isso na mensagem: "abra com uma etapa de importação e defina a coluna de ID como Texto". Duas linhas de e-mail evitam a falha de qualidade de dados mais comum no trabalho de escritório, e nenhuma escolha de formato a evita sozinha.

Perguntas

CSV ou XLSX: qual é melhor?
Nenhum é melhor em geral; eles respondem a perguntas diferentes. O CSV serve para entregar dados a um programa: é texto simples, não tem limite de linhas, pode ser lido em fluxo e volta inalterado. O XLSX serve para entregar um documento a uma pessoa: carrega fórmulas, formatação, várias planilhas e tipos de célula explícitos.
Por que o Excel muda meus números quando abro um CSV?
Porque um CSV não guarda tipos, então o Excel os deduz. Zeros à esquerda de CEPs são removidos, IDs com mais de 15 dígitos viram notação científica e perdem os últimos dígitos para sempre, e textos como MAR1 viram datas. Salve o arquivo de volta como CSV e essas mudanças passam a estar no arquivo.
O XLSX é menor que o CSV?
Normalmente sim em disco, porque o XLSX é um arquivo compactado, muitas vezes três ou quatro vezes menor para os mesmos dados. Mas ele precisa ser totalmente descompactado e carregado na memória antes de você ver qualquer coisa, enquanto um CSV pode ser lido em fluxo, linha a linha, então o CSV lida com arquivos muito maiores que o XLSX.
Quantas linhas cabem em um arquivo XLSX?
1.048.576 linhas e 16.384 colunas por planilha, um limite estrutural do formato e não de memória. Um CSV não tem nenhum limite de linhas, e por isso exportações de vários milhões de linhas quase sempre são CSV.
Converter CSV em XLSX faz perder alguma coisa?
Dados em si, não, mas a conversão atribui tipos que nunca estiveram no CSV, e é aí que CEPs e IDs longos são danificados. No sentido contrário a perda é mais visível: de XLSX para CSV as fórmulas somem, ficando apenas seus últimos valores calculados, e todas as planilhas menos uma são descartadas, junto com toda a formatação.
Qual é a diferença entre XLS e XLSX?
XLS é o formato binário do Excel anterior a 2007; XLSX é o formato Office Open XML que o substituiu, um arquivo ZIP de arquivos XML. Arquivos XLS ainda aparecem vindos de sistemas legados e vale a pena convertê-los, porque algumas ferramentas atuais os abrem com avisos e outras os recusam por completo.

uos — Cria o CSV Editor e o Smart CSV Viewer, dois apps cujo trabalho é justamente a parte que as planilhas erram.