Conversor gratuito de texto para CSV

Converta dados textuais tabulares para o formato CSV. Detecção automática de separadores, tratamento de aspas e pré-visualização antes do download.

Seus dados nunca saem do seu dispositivo

Sobre o formato CSV

O CSV (Comma-Separated Values, valores separados por vírgulas) é um formato de texto simples para armazenar dados tabulares. Cada linha representa um registro e os valores são separados por vírgulas. O CSV é amplamente suportado por planilhas, bancos de dados e ferramentas de análise.

Por que converter para CSV ?

Perguntas frequentes

Quais separadores a ferramenta suporta ?

Ela detecta automaticamente tabulação, espaço, vírgula, ponto-e-vírgula e barra vertical. Você também pode definir um separador personalizado de um único caractere.

Como lidar com campos que contêm vírgulas ?

Ative a opção « Colocar entre aspas os campos que contêm vírgulas » para envolvê-los em aspas, o que os torna compatíveis com o CSV.

Posso incluir um cabeçalho ?

Sim, ative a opção « Incluir uma linha de cabeçalho » se sua primeira linha contém os nomes das colunas.

Uma breve história do CSV, mais antigo que a especificação que o define

O CSV é o formato que todo mundo usa e ninguém é dono. Sua linhagem é informal. O uso documentado mais antigo da convenção de separação por vírgulas data de 1972, quando o IBM Fortran (nível H estendido) passou a suportar entrada/saída dirigida por lista, em que as vírgulas serviam de separadores entre valores em uma linha. Ao longo das décadas de 1970 e 1980, cada banco de dados, planilha, pacote estatístico e aplicação de contabilidade que precisava trocar dados com outra ferramenta inventou, de forma independente, alguma variante de «valores separados por algum caractere em linhas separadas por algum outro caractere». Não havia especificação. Não havia órgão regulador. Não havia implementação canônica. Havia apenas consenso, no sentido mais frouxo possível.

No início dos anos 2000, o custo do caos se tornou impossível de ignorar. A IETF acabou aceitando uma especificação, a RFC 4180, «Common Format and MIME Type for Comma-Separated Values (CSV) Files», publicada em outubro de 2005 por Yakov Shafranovich. A RFC 4180 é curta, apenas algumas páginas, e codificou aquilo em que a maioria das pessoas já havia convergido: uma vírgula como separador de campo, aspas duplas como caractere de delimitação opcional para campos que contêm vírgulas, aspas ou quebras de linha, aspas duplas duplicadas ("") como forma de escapar uma aspa literal dentro de um campo entre aspas, CRLF como terminador de linha e text/csv como o tipo MIME registrado na IANA. A especificação também definiu um parâmetro header opcional para o tipo MIME, para que um remetente pudesse informar a um destinatário se a primeira linha é uma linha de cabeçalho.

A RFC 4180 é informativa, não um padrão rígido. A conformidade com ela é voluntária. Mas ela nos dá um alvo, o mais próximo que o CSV tem de uma definição de «correto». Um documento posterior, o «Model for Tabular Data and Metadata on the Web» do W3C (CSVW, 2015), tentou ampliar a parte de metadados do CSV ao anexar um arquivo JSON paralelo que diz o que é cada coluna e como interpretá-la. O CSVW é amplamente citado e raramente implantado.

«CSV» no mundo real não significa o que a RFC 4180 diz que significa

Qualquer um que já teve de receber um CSV de um desconhecido conhece o formato do problema. As divergências se dividem em vários eixos:

A armadilha do BOM

Isto merece uma seção própria porque é, de longe, a fonte mais comum de dor de cabeça com CSV entre plataformas. O Microsoft Excel não detecta automaticamente um CSV codificado em UTF-8 a menos que o arquivo comece com uma marca de ordem de bytes (BOM) UTF-8: os três bytes EF BB BF, que codificam o caractere Unicode U+FEFF. Sem o BOM, o Excel abre o arquivo na página de código legada do locale do Windows do usuário (Windows-1252 no Ocidente, Shift_JIS no Japão, GBK na China continental). Qualquer caractere não ASCII (letras acentuadas, símbolos de moeda, emoji, caracteres CJK) fica corrompido.

A correção é colocar o BOM no início. O custo é que todo o resto engasga com ele. O Apple Numbers (até versões recentes) mostra o BOM como um caractere literal na primeira célula. Muitas ferramentas de linha de comando (awk, cut, o sed mais antigo) tratam o BOM como parte do primeiro campo, então um cabeçalho que deveria ser lido como name é lido como name. A maioria dos parsers de CSV em JavaScript o remove; muitos fluxos mais antigos com o módulo csv do Python não (é preciso abrir o arquivo com o codec utf-8-sig). Como uma ferramenta on-line gratuita não tem como saber onde o usuário vai abrir o arquivo, omitir o BOM e documentar que os usuários do Excel devem usar Dados → De Texto/CSV (que sempre permite ao usuário escolher UTF-8 explicitamente) é um padrão razoável.

O Excel vem com pelo menos quatro formatos «CSV» diferentes

A caixa de diálogo «Salvar como» do Excel oferece mais de uma variante de CSV, e as diferenças importam:

O rótulo que o usuário vê diz «CSV» de quatro formas diferentes. O conteúdo real do arquivo é materialmente diferente. Essa é a realidade prática dentro da qual o conversor opera.

Por que converter texto → CSV, especificamente

A maioria das «ferramentas de CSV» on-line roda na direção inversa: pegam um CSV e emitem outra coisa (JSON, uma tabela HTML, um INSERT SQL, um PDF imprimível). Esta roda no sentido oposto: pega um texto bagunçado e produz um CSV limpo. Esse é o caso de uso para:

O Excel vai reescrever seus dados, às vezes silenciosamente

Um punhado de ciladas do CSV pega até usuários cuidadosos:

Onde esta ferramenta se encaixa entre as alternativas modernas ao CSV

O CSV sobrevive porque é texto e os humanos conseguem lê-lo. Para troca séria de dados, vários formatos tomaram a dianteira em dimensões específicas:

Para um conversor on-line gratuito voltado a desenvolvedores e trabalhadores de escritório, o CSV continua sendo o formato de saída certo porque é a língua franca da importação de dados em toda parte. Existem alternativas modernas; elas não destronaram o CSV na caixa de entrada.

Mais perguntas

Devo adicionar um BOM UTF-8 à saída?

Se o arquivo se destina a ser aberto com duplo clique no Excel no Windows, sim: sem o BOM, o Excel o abre na página de código legada e corrompe o texto não ASCII. Se ele se destina a qualquer outra coisa (Apple Numbers, scripts de linha de comando, formulários de upload na web), omita o BOM. O caminho mais seguro é omitir o BOM e orientar os usuários do Excel a importar via Dados → De Texto/CSV, onde podem escolher UTF-8 explicitamente.

Meu CSV abre com uma célula por linha no Excel; o que deu errado?

Quase sempre uma incompatibilidade de separador. Você está em um locale em que o Excel espera ponto e vírgula (a maior parte da Europa continental), mas o arquivo usa vírgulas, ou vice-versa. Abra com Dados → De Texto/CSV em vez de dar duplo clique; esse assistente permite escolher o delimitador explicitamente. Ou salve o arquivo pelo menu Salvar como do Excel usando a variante que corresponde ao seu separador local.

Qual é a diferença entre TSV e CSV?

O TSV usa caracteres de tabulação como separador, em vez de vírgulas, com seu próprio tipo MIME text/tab-separated-values e registro na IANA. A vantagem do TSV é que os dados do mundo real raramente contêm tabulações literais, então quase nunca é preciso usar aspas; a desvantagem é que as tabulações são invisíveis nos editores de texto e o comportamento de copiar e colar varia. A maquinaria de aspas do CSV o torna seguro para campos que contêm o delimitador; o TSV em geral evita o problema por completo.

Existe um linter de CSV que eu possa rodar antes de compartilhar meu arquivo?

Sim. Para uso na linha de comando, o csvclean do csvkit relata linhas com o número errado de colunas. A CLI frictionless da Frictionless Data valida em relação a um schema opcional. Para trabalho no navegador, o PapaParse relata erros de análise linha a linha. A validação estrita em relação à RFC 4180 (fins de linha CRLF, escape por aspas duplicadas) é rara na prática; a maioria dos parsers aceita qualquer uma das variantes comuns.

Ferramentas relacionadas