A formatação de CSV (Comma-Separated Values) é o processo de normalizar texto tabular bruto para que delimitadores, aspas, espaços em branco e terminações de linha sigam um conjunto consistente de regras. O RFC 4180, publicado em 2005, define o padrão CSV mais amplamente adotado: campos separados por vírgulas, registros terminados por CRLF, e qualquer campo que contenha vírgula, aspas duplas ou quebra de linha envolvido em aspas duplas. Um formatador de CSV recebe dados CSV bagunçados ou inconsistentes e os reescreve para seguir essas convenções.
Arquivos CSV do mundo real raramente chegam em formato limpo. Exportações de planilhas do Excel, Google Sheets e utilitários de dump de banco de dados aplicam estratégias de aspas diferentes, tratam espaços em branco de forma distinta e podem usar ponto e vírgula ou tabulações em vez de vírgulas. Ao alimentar esses arquivos em um parser que espera entrada estrita conforme o RFC 4180, o resultado frequentemente são linhas quebradas, colunas deslocadas ou perda silenciosa de dados. Formatar antes de processar detecta esses problemas cedo.
Um formatador de CSV difere de um conversor de CSV. A formatação mantém os dados em CSV. Ela normaliza as aspas, remove espaços extras, realinha as colunas e opcionalmente troca o delimitador. A conversão muda o formato completamente, produzindo saída em JSON, HTML, SQL ou Markdown.
Por que usar este Formatador de CSV?
Esta ferramenta analisa e re-serializa seu CSV inteiramente no navegador. Seus dados nunca saem da sua máquina.
⚡
Formatação Instantânea
Cole o CSV e veja o resultado limpo imediatamente. O formatador analisa e re-serializa no navegador enquanto você digita.
🔒
Processamento com Privacidade em Primeiro Lugar
Todo o processamento acontece na aba do seu navegador. Nenhum dado é transmitido pela rede. Seguro para conjuntos de dados proprietários, credenciais e PII que não devem sair da sua máquina.
🔧
Delimitadores Configuráveis
Alterne entre vírgula, tabulação, ponto e vírgula e pipe como delimitadores. A ferramenta detecta automaticamente o delimitador de entrada e permite escolher um diferente para a saída, tornando a normalização entre formatos simples.
📋
Cópia e Download com Um Clique
Copie o CSV formatado para a área de transferência ou baixe-o como arquivo. Pronto para importação em bancos de dados, planilhas ou pipelines de dados sem edição adicional.
Casos de Uso do Formatador de CSV
Desenvolvimento Frontend
Limpe arquivos CSV de fixture usados como dados mock em componentes React ou Vue. Aspas consistentes evitam falhas de parsing durante o build de desenvolvimento.
Ingestão de Dados no Backend
Normalize exportações CSV de APIs de terceiros antes de alimentá-las em seu pipeline ETL. Remover espaços e padronizar delimitadores evita bugs de deslocamento de colunas.
DevOps e CI/CD
Formate arquivos CSV de configuração ou dados de seed commitados no controle de versão. Formatação consistente reduz ruído em diffs e agiliza as revisões de código.
QA e Testes
Prepare fixtures CSV de teste com padrões conhecidos de aspas e delimitadores. Arquivos de entrada reproduzíveis facilitam escrever asserções contra a saída do parser.
Engenharia de Dados
Pré-processe dumps CSV de bancos de dados legados antes de carregá-los em data warehouses modernos. Corrigir problemas de aspas e incompatibilidades de delimitadores economiza horas de depuração.
Aprendizado e Educação
Experimente as regras de aspas do RFC 4180 colando diferentes entradas e observando como o formatador as normaliza. Uma maneira prática de entender os casos extremos do CSV.
Regras de Aspas e Escape em CSV (RFC 4180)
O RFC 4180 define regras específicas para quando e como os campos devem ser entre aspas. Os seis cenários abaixo cobrem os casos em que o comportamento das aspas é relevante.
Cenário
Exemplo
Regra
Field contains delimiter
name,"Smith, Jr."
Wrap in double quotes
Field contains newline
"line1\nline2"
Wrap in double quotes
Field contains double quote
"She said ""hello"""
Double the quote character
Field is empty
,,
Two consecutive delimiters
Field has leading spaces
" value"
Quotes preserve whitespace
Field is numeric
42
No quotes required unless forced
Comparação de Delimitadores CSV
A escolha do delimitador afeta a compatibilidade, a legibilidade e a frequência com que você precisará de campos entre aspas.
Vírgula (,)
O padrão do RFC 4180. Suportado por todo parser CSV e planilha. Requer aspas quando os valores de campo contêm vírgulas, o que é comum em endereços e dados de texto.
Tabulação (\t)
Usado em arquivos TSV (Tab-Separated Values). Caracteres de tabulação raramente aparecem em dados de campo, então aspas são raramente necessárias. Comum em bioinformática e exportações de banco de dados.
Ponto e vírgula (;)
Padrão em exportações CSV com localização europeia (Alemanha, França, Brasil) onde a vírgula é usada como separador decimal. O Excel usa ponto e vírgula quando a localização do sistema usa vírgula decimal.
Pipe (|)
Raro em texto natural, tornando-o uma boa escolha para dados bagunçados onde vírgulas e ponto e vírgula aparecem nos valores de campo. Comum em exportações de mainframes e sistemas legados.
Exemplos de Código
Estes exemplos mostram como analisar CSV bagunçado e re-serializá-lo com formatação consistente em diferentes linguagens. Cada trecho trata a remoção de espaços, normalização de delimitadores e aspas.
JavaScript (Node.js)
import { parse, unparse } from 'papaparse'
const messy = `name, age ,city
Alice , 30, Berlin
Bob,25 , " Tokyo "`
// Parse with trimming, then re-serialize with consistent formatting
const parsed = parse(messy, {
header: true,
skipEmptyLines: true,
transformHeader: h => h.trim(),
transform: v => v.trim(),
})
const clean = unparse(parsed.data, { quotes: true })
console.log(clean)
// → "name","age","city"
// → "Alice","30","Berlin"
// → "Bob","25","Tokyo"
Python
import csv
import io
messy = """name, age ,city
Alice , 30, Berlin
Bob,25 , " Tokyo " """
reader = csv.DictReader(io.StringIO(messy), skipinitialspace=True)
output = io.StringIO()
writer = csv.DictWriter(
output,
fieldnames=[f.strip() for f in reader.fieldnames],
quoting=csv.QUOTE_ALL,
)
writer.writeheader()
for row in reader:
writer.writerow({k.strip(): v.strip() for k, v in row.items()})
print(output.getvalue())
# → "name","age","city"
# → "Alice","30","Berlin"
# → "Bob","25","Tokyo"
Go
package main
import (
"encoding/csv"
"fmt"
"strings"
)
func main() {
input := "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo"
r := csv.NewReader(strings.NewReader(input))
records, _ := r.ReadAll()
var buf strings.Builder
w := csv.NewWriter(&buf)
w.UseCRLF = true // RFC 4180 line endings
for _, record := range records {
_ = w.Write(record)
}
w.Flush()
fmt.Print(buf.String())
// → name,age,city\r\n
// → Alice,30,Berlin\r\n
// → Bob,25,Tokyo\r\n
}
CLI (csvformat from csvkit)
# Re-format a CSV file with csvkit (Python-based)
csvformat -D ";" input.csv > output.csv
# Convert tabs to commas
csvformat -t input.tsv > output.csv
# Force-quote all fields
csvformat -U 1 input.csv > quoted.csv
# Using Miller (mlr) to normalize
mlr --icsv --ocsv --quote-all cat input.csv > clean.csv
Perguntas Frequentes
O que um formatador de CSV faz?
Um formatador de CSV analisa texto CSV bruto, normaliza as aspas ao redor dos campos, remove espaços desnecessários e re-serializa os dados com um estilo consistente de delimitador e terminação de linha. O resultado é um arquivo CSV limpo que segue o RFC 4180 ou as regras de formatação escolhidas.
Como a formatação de CSV difere da validação de CSV?
A validação verifica se um arquivo CSV está em conformidade com um conjunto de regras e reporta os erros. A formatação vai além: ela reescreve o arquivo para corrigir esses problemas. Um validador informa que a linha 5 tem uma vírgula sem aspas. Um formatador corrige isso adicionando aspas ao redor do campo.
Por que preciso formatar arquivos CSV antes de importá-los?
Ferramentas de importação de banco de dados, pipelines ETL e softwares de planilha têm regras de parsing CSV ligeiramente diferentes. Um campo sem aspas com uma vírgula será dividido em duas colunas em parsers rigorosos. Formatar seu CSV conforme o RFC 4180 antes da importação evita esses erros de deslocamento de colunas e corrupção silenciosa de dados.
Meus dados são enviados para um servidor ao usar esta ferramenta?
Não. Todo o processamento acontece no seu navegador usando JavaScript. Seus dados CSV permanecem na sua máquina e nunca são transmitidos pela rede. Você pode verificar isso abrindo a aba Rede do seu navegador enquanto usa a ferramenta.
Posso alterar o delimitador durante a formatação?
Sim. A ferramenta detecta automaticamente o delimitador de entrada (vírgula, tabulação, ponto e vírgula ou pipe) e permite selecionar um delimitador diferente para a saída. Isso é útil ao converter entre formatos CSV regionais ou ao mudar de TSV para CSV padrão.
Como a ferramenta trata campos entre aspas com quebras de linha incorporadas?
Conforme o RFC 4180, campos que contêm quebras de linha devem ser envolvidos em aspas duplas. O formatador preserva essas quebras de linha incorporadas e garante que as aspas ao redor estejam presentes. Se um campo tiver uma quebra de linha sem aspas na entrada, o formatador a envolve em aspas durante a re-serialização.
Qual é o tamanho máximo de arquivo que esta ferramenta suporta?
Como a ferramenta roda no seu navegador, o limite prático depende da memória disponível no seu dispositivo. Arquivos de até 10-20 MB geralmente são processados sem problemas em máquinas modernas. Para arquivos maiores, uma ferramenta de linha de comando como csvkit ou Miller é uma opção melhor.