Separar linha CSV em linhas com campos entre aspas intactos
Transforme um registro CSV horizontal em uma lista vertical limpa sem separar valores que contêm vírgulas.
Executar grátis
O analisador reconhece campos entre aspas, escape com aspas duplicadas, colunas vazias e uma quebra de linha final opcional. Ele é útil quando você precisa converter uma linha copiada de uma planilha, exportação, log ou comando em uma lista para documento, formulário, script ou comparação. A mesma conversão determinística funciona no navegador e pela API, sem consulta à rede nem tentativa de adivinhar o formato.
Cole um único registro CSV completo
Informe exatamente um registro separado por vírgulas no campo de texto. Uma entrada simples como <code>vermelho,verde,azul</code> vira três linhas na mesma ordem. Colunas vazias não são descartadas: <code>vermelho,,azul,</code> gera quatro valores, incluindo o segundo e o último vazios. Isso é importante quando a posição das colunas tem significado, pois remover lacunas deslocaria todos os valores seguintes. Você pode incluir um único terminador LF, CRLF ou CR no final, o que facilita colar uma linha copiada de arquivo ou terminal. Qualquer separador de registro adicional fora de um campo entre aspas é rejeitado, porque esta capacidade foi feita para uma linha, não para um documento CSV inteiro. Ela não remove espaços nem reinterpreta números, datas, booleanos ou palavras semelhantes a nulo. Depois de decodificar a sintaxe de aspas do CSV, os caracteres de cada campo permanecem como foram enviados. Assim, o resultado é previsível para identificadores, rótulos, endereços, células e valores gerados por sistemas, nos quais uma limpeza automática poderia apagar conteúdo significativo.
Campos entre aspas são analisados como CSV
Separar uma string em toda vírgula falha assim que um endereço, uma descrição de produto ou uma frase contém pontuação. Esta capacidade usa um analisador CSV com estados. Quando um campo começa com aspas duplas, as vírgulas continuam dentro daquele valor até a aspa de fechamento correspondente. Duas aspas duplas consecutivas dentro de um campo viram uma aspa dupla literal, conforme a regra comum de escape do CSV. Quebras de linha também podem aparecer em campos entre aspas e permanecem dentro do valor. Depois da aspa de fechamento, apenas uma vírgula ou o fim do registro é válido; qualquer caractere inesperado provoca um erro de entrada claro, em vez de produzir uma lista convincente, porém incorreta. Pelo mesmo motivo, uma aspa no meio de um campo sem aspas é rejeitada. Essas verificações rigorosas revelam exportações malformadas cedo e evitam alterações silenciosas de significado. O analisador faz uma única passagem limitada, não chama serviços externos e sempre retorna o mesmo resultado para o mesmo texto.
Use o resultado vertical onde linhas ajudam
A resposta oferece um resultado unido por quebras de linha para cópia imediata, um array lines para uso estruturado e uma contagem de campos para conferência. O texto unido pode ser colado em formulário multilinha, editor, lista de permissões, configuração, chamado ou intervalo de uma coluna. O array é mais seguro no código porque preserva a fronteira de cada campo CSV, inclusive campos vazios e valores que contêm uma quebra de linha. Antes de automatizar, compare field_count com a quantidade de colunas esperada pelo sistema de destino; uma diferença costuma indicar vírgula ausente, coluna final extra ou aspas malformadas na origem. Use um analisador CSV completo quando a entrada tiver cabeçalho e vários registros, precisar de detecção de delimitador ou exigir validação por esquema. Esta capacidade focada é ideal quando você já sabe que a origem é um único registro separado por vírgulas e deseja apenas transformar campos horizontais em valores verticais. Cada solicitação pela API custa US$ 0,002; a versão do navegador executa localmente a mesma análise determinística.
Casos de uso
Transformar células da planilha em lista
Cole uma linha exportada e copie as colunas, uma por linha, sem danificar vírgulas entre aspas.
Preparar dados para formulário multilinha
Converta um registro CSV de identificadores ou rótulos no formato por linhas aceito por muitos formulários em massa.
Inspecionar um registro problemático
Veja cada campo isoladamente para conferir colunas vazias, aspas escapadas e a quantidade real de valores.
Perguntas frequentes
A ferramenta aceita vírgulas dentro dos valores?
Sim. Vírgulas em um campo corretamente delimitado por aspas permanecem no valor e não criam outra linha.
Como os caracteres de aspas são escapados?
Dentro de um campo entre aspas, duas aspas duplas consecutivas viram uma aspa dupla literal.
Os campos CSV vazios são preservados?
Sim. Campos vazios no início, no meio e no fim são mantidos para que as posições não mudem.
Posso enviar um arquivo CSV completo?
Não. Envie exatamente um registro. Para cabeçalhos e várias linhas, use uma capacidade completa de conversão CSV.
A ferramenta remove espaços ou converte tipos?
Não. Espaços sem aspas são preservados e todos os campos analisados continuam sendo texto.
Qual é o preço?
A versão do navegador roda localmente de graça. Uma solicitação pela API custa US$ 0,002.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/str/csv-row-to-lines \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"alpha,\"New York, NY\",\"She said \"\"hello\"\"\",omega"}'const res = await fetch("https://api.kit.forhosting.com/str/csv-row-to-lines", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "alpha,\"New York, NY\",\"She said \"\"hello\"\"\",omega"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/csv-row-to-lines",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "alpha,\"New York, NY\",\"She said \"\"hello\"\"\",omega"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/csv-row-to-lines", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"alpha,\\"New York, NY\\",\\"She said \\"\\"hello\\"\\"\\",omega"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"alpha,\"New York, NY\",\"She said \"\"hello\"\"\",omega"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/csv-row-to-lines", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "alpha,\"New York, NY\",\"She said \"\"hello\"\"\",omega"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.csv_row_to_lines",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_chars | 100000 |
max_fields | 10000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |