Como converter dados delimitados

Cole texto CSV, TSV ou separado por ponto e vírgula, escolha o delimitador (Detecção automática, Vírgula, Tabulação ou Ponto e vírgula) e o formato de saída (XML, YAML, SQL INSERT ou JSON) e clique em Converter. A primeira linha é lida como cabeçalho e fornece os nomes dos campos.

Tudo roda neste navegador: nada é enviado e o SQL gerado é apenas texto — a página nunca se conecta a um banco de dados. Uma tabela de 5.000 linhas é convertida em cerca de um terço de segundo, e o resultado pode ser copiado ou baixado como converted-data.<formato>.

  1. Cole a tabela na caixa de entrada ou clique em Carregar exemplo para ver uma amostra de quatro colunas com campos entre aspas.
  2. Escolha o delimitador. A detecção automática conta vírgulas, tabulações e pontos e vírgula fora das células entre aspas nas cinco primeiras linhas não vazias e prefere o candidato cuja contagem não muda, então um cabeçalho como "Hopper, Grace" não esconde mais as tabulações; selecione Tabulação ou Ponto e vírgula quando o arquivo for ambíguo.
  3. Escolha o formato de saída e, para SQL INSERT, o nome da tabela (imported_data por padrão), e clique em Converter. Linhas, colunas, delimitador detectado e tamanho da saída aparecem acima do resultado.
  4. Leia o resultado junto com o painel de Achados: ele lista o que a leitura precisou corrigir, como aspas não fechadas, valores extras mantidos em campos column_N gerados, colunas duplicadas renomeadas, caracteres de controle removidos do XML ou nome de tabela ajustado.

Formatos, escape e limites

Delimitadores, aspas e cabeçalhos

A detecção automática lê as cinco primeiras linhas não vazias e conta delimitadores fora das células entre aspas; a vírgula é o padrão quando nenhum candidato convence. As aspas abrem uma célula apenas no início, então uma aspa dentro de um valor sem aspas permanece no dado, "" dentro de uma célula entre aspas vale uma aspa, e delimitadores ou quebras de linha dentro das aspas ficam na célula. A marca de ordem de bytes UTF-8 é removida do primeiro cabeçalho e linhas vazias são ignoradas em vez de virar registros vazios.

Os nomes de cabeçalho são aparados; um cabeçalho vazio vira column_1, column_2 e assim por diante, e nomes duplicados são renomeados com um sufixo numérico (a, a_2) em vez de sobrescrever um ao outro. Linhas menores que o cabeçalho mantêm valores vazios e linhas com mais valores guardam as células extras em campos column_N gerados, o que o painel de achados informa.

O que cada formato de saída escreve

JSON escreve um objeto por linha com todas as células como texto. XML escreve uma declaração XML 1.0 com elementos <rows> e <row>: nomes de cabeçalho viram nomes de elemento (caracteres que não sejam letras, dígitos, ponto, hífen ou sublinhado viram _), um dígito inicial recebe o prefixo _ e nomes repetidos ganham sufixo. YAML escreve uma sequência de mapas e coloca entre aspas qualquer texto que um analisador YAML leria como número, data, booleano ou nulo, então 007, 2026-09-22 e yes continuam texto.

SQL INSERT escreve uma instrução por linha com identificadores entre crases e escape de texto do MySQL/MariaDB: a aspa simples é duplicada e barra invertida, quebra de linha, retorno de carro, NUL e Ctrl-Z são escapados, então um caminho Windows terminado em barra invertida permanece dentro do texto. O nome da tabela é reduzido a letras, dígitos e sublinhados, e o painel de achados avisa quando isso muda o nome digitado. Nada é enviado a um banco de dados.

Limites e o que esta página não faz

As células continuam texto: o conversor nunca decide que uma coluna é numérica e não transforma valores em datas, booleanos ou NULL. O SQL gerado segue o padrão MySQL/MariaDB (identificadores entre crases); outros servidores aceitam os literais de texto mas podem exigir seu próprio modo de citar identificadores. O XML 1.0 não representa a maioria dos caracteres de controle, e esses caracteres são removidos dos valores XML.

Não há seletor de arquivos nem leitor de planilhas — cole o texto, ou copie antes as linhas do Excel — e vale a pena analisar o resultado com uma biblioteca do formato de destino antes de confiar nele. Uma entrada só com cabeçalho devolve um array JSON ou YAML vazio com um achado, a métrica do delimitador registra o que a detecção escolheu e o tamanho prático depende da memória da aba.

Ferramentas recentes: