Pular para o conteúdo

BlogDados6 min de leitura

CSV, Excel ou JSON: qual formato para seus dados?

Salvamos a mesma tabela de 100 mil linhas em CSV, em uma pasta de trabalho do Excel e em JSON, e comparamos os tamanhos, a velocidade de leitura no código e o que dá errado com datas, zeros à esquerda e números longos.

Três cartões mostrando os mesmos dados em CSV, em uma planilha do Excel e em JSON.

Tabelas de dados circulam entre pessoas e programas em três formatos principais: CSV, pastas de trabalho do Excel (XLSX) e JSON. Cada um é a escolha natural em algum lugar, e cada um causa um tipo conhecido de problema quando vai parar no lugar errado. Para comparar em pé de igualdade, salvamos uma mesma tabela nos três, medimos tamanho e velocidade de leitura e vimos o que cada formato consegue ou não guardar.

A tabela de teste

A tabela tem 100 mil pedidos com sete colunas: um número de pedido, uma data, um país, um produto, uma quantidade, um preço unitário e um total. As primeiras linhas ficam assim em CSV:

order_id,date,country,product,quantity,unit_price,total
100000,2025-11-30,Brazil,Water bottle,6,158.35,950.1
100001,2025-02-25,France,Office chair,7,158.73,1111.11

e assim em JSON:

[
  {
    "order_id": 100000,
    "date": "2025-11-30",
    "country": "Brazil",
    "product": "Water bottle",
    "quantity": 6,
    "unit_price": 158.35,
    "total": 950.1
  },
  ...
]

Tamanho do arquivo

As mesmas 100 mil linhas em cada formato
  • XLSXsalvo pelo Excel4,5 MB
  • CSV5,0 MB
  • JSONcompacto12,4 MB
  • JSONindentado17,0 MB

Tamanhos em megabytes (MiB). O JSON repete o nome de cada coluna em cada linha, por isso tem duas vezes e meia o tamanho do CSV.

Um arquivo do Excel é um arquivo ZIP de documentos XML, então já chega comprimido, e o Excel guarda cada texto diferente uma única vez numa lista compartilhada. Isso o deixa um pouco menor que o CSV aqui. O JSON é de longe o maior: cada linha repete "order_id", "date" e as outras chaves, e a indentação acrescenta mais de um terço por cima.

O quadro muda quando os arquivos são compactados, como acontece no trânsito quando um servidor web os envia com gzip:

FormatoTamanhoCom gzip
CSV5,03 MB1,36 MB
JSON, compacto12,37 MB1,63 MB
JSON, indentado16,95 MB1,72 MB
XLSX, salvo pelo Excel4,46 MBjá comprimido
Chaves repetidas são exatamente o que a compressão elimina, então o JSON compactado fica só cerca de 20% maior que o CSV compactado.

Velocidade de leitura

O tamanho importa menos do que se pensa numa conexão moderna. A rapidez com que um programa transforma o arquivo de volta em linhas importa mais quando os dados são grandes. Lemos cada arquivo de volta com as bibliotecas que nossas ferramentas de dados usam, pegando a mediana de cinco execuções:

FormatoLeitura em linhasBiblioteca
JSON, compacto0,12 sJSON.parse, embutido no JavaScript
CSV0,47 sPapa Parse
XLSX10,2 sSheetJS
Node.js num computador de mesa. O próprio Microsoft Excel abriu o CSV em 1,5 s e o arquivo XLSX em 2,1 s.

O JSON vence no código porque toda linguagem traz um parser nativo rápido e os tipos já vêm de graça. O CSV precisa de um parser que trate aspas e converta texto em números. Fora do Excel, o XLSX é de longe o mais lento: o programa precisa descompactar o arquivo, ler um documento XML grande e resolver os textos compartilhados e os estilos. Se um script ou um app web precisa ler tabelas grandes com frequência, o XLSX é o formato errado para alimentá-lo.

O que cada formato consegue guardar

CSVXLSXJSON
Tipos de dadosSó textoNúmeros, texto, datas, booleanosNúmeros, texto, booleanos, null
Várias tabelasNão, uma por arquivoSim, como planilhasSim, como objetos aninhados
Dados aninhadosNãoNãoSim
Fórmulas e formataçãoNãoSimNão
Limite de linhasNenhum1.048.576 linhasNenhum
Legível num editor de textoSimNãoSim
Abre no ExcelSim, com cuidadoSimCom Power Query ou um conversor

Onde o CSV dá errado

O CSV parece o formato mais simples, e é justamente a falta de regras que causa mais problemas. Os mesmos problemas aparecem de novo e de novo:

  • Os zeros à esquerda somem. CEPs, códigos de produto e números de telefone como 02134 viram 2134 quando uma planilha supõe que são números.
  • Números longos perdem dígitos. O Excel guarda 15 dígitos significativos, então um número de cartão ou de conta de 16 dígitos muda o último dígito sem avisar.
  • As datas são reinterpretadas. 03/04/2025 é 3 de abril na maior parte do mundo e 4 de março nos Estados Unidos, e as planilhas convertem esses valores ao abrir o arquivo. Datas ISO como 2025-04-03 evitam o chute.
  • O separador depende do país. Onde a vírgula é o separador decimal, como no Brasil, em Portugal ou na Alemanha, o Excel espera ponto e vírgula entre os campos, então um arquivo separado por vírgulas abre como uma única coluna comprida.
  • Acentos viram símbolos. O Excel só lê corretamente um CSV em UTF-8 se o arquivo começa com uma marca de ordem de bytes (BOM). Sem ela, «Café» pode aparecer como «Café».
  • Vírgulas dentro dos valores precisam ficar entre aspas, e aspas dentro de um valor entre aspas, duplicadas. CSV feito à mão costuma errar nisso.

Nada disso acontece com XLSX ou JSON, que guardam os tipos explicitamente. Com CSV, o hábito mais seguro é abrir pela tela de importação do Excel (Dados, De Texto/CSV), onde você define o tipo de cada coluna, em vez de dar dois cliques no arquivo.

Qual usar

  • Enviar uma tabela para uma pessoa que vai olhar, ordenar ou acrescentar fórmulas: XLSX. Mantém os tipos e a formatação e abre corretamente em qualquer lugar com Excel, Google Sheets, Numbers ou LibreOffice.
  • Trocar dados entre sistemas, importar num banco de dados ou arquivar dados puros: CSV, com codificação UTF-8, datas ISO e uma linha de cabeçalho. É universal, compacto e legível daqui a décadas.
  • Dados para um app web ou uma API, ou qualquer coisa com estrutura aninhada: JSON. É o formato nativo do JavaScript e o mais rápido de ler no código.

Converter entre eles costuma ser a parte fácil. Nosso conversor de Excel e CSV transforma XLSX, XLS e ODS em CSV ou JSON planilha por planilha e cria arquivos do Excel a partir de CSV, TSV ou JSON, o visualizador de CSV abre arquivos CSV grandes com ordenação e filtros, e o conversor de dados passa entre JSON, CSV, YAML e XML. Todos rodam no navegador, então os dados nunca saem do seu aparelho.

Perguntas e respostas

CSV ou Excel, qual é menor?

No nosso teste, um arquivo do Excel salvo pelo Excel ficou um pouco menor (4,5 MB) que os mesmos dados em CSV (5,0 MB), porque o XLSX é comprimido por dentro. Compactado, o CSV ficaria bem menor (cerca de 1,4 MB com gzip).

Por que o Excel tira os zeros do começo dos meus números?

O Excel supõe que a coluna tem números ao abrir um arquivo CSV. Importe o arquivo por Dados, De Texto/CSV e defina essa coluna como Texto, ou guarde os dados em XLSX.

Dá para abrir JSON no Excel?

Sim, com o Power Query (Dados, Obter Dados, De Arquivo, Do JSON), ou convertendo antes para CSV ou XLSX. Listas planas de objetos convertem bem; dados aninhados precisam ser achatados em colunas.

Quantas linhas o Excel consegue abrir?

Uma planilha do Excel comporta no máximo 1.048.576 linhas e 16.384 colunas. CSV maiores abrem só em parte, então use um visualizador que leia o arquivo aos poucos ou divida-o.

Ferramentas deste artigo

Mais do blog

Dados5 min de leitura

Correção de erros e tamanho do QR code: L, M, Q e H testados

Uma correção de erros maior deixa um QR code resistir a danos, mas também o deixa mais denso. Geramos códigos para quatro tipos comuns de conteúdo em cada nível e os cobrimos aos poucos até pararem de ser lidos.

Dados5 min de leitura

Timestamps Unix explicados

Um timestamp Unix é só uma contagem de segundos, mas causa um fluxo constante de bugs. O que ele conta, como distinguir segundos de milissegundos num relance, o que acontece com fusos horários e segundos bissextos, e por que 2038 importa.

Esc