Dividir una fila CSV en líneas sin romper campos entrecomillados
Convierta un registro CSV horizontal en una lista vertical limpia sin dividir los valores que contienen comas.
Ejecutar — gratis
Este analizador entiende campos entrecomillados, comillas dobles escapadas, columnas vacías y un salto de línea final opcional. Resulta práctico cuando necesita transformar una fila copiada de una hoja de cálculo, exportación, registro o comando en una lista para un documento, formulario, script o comparación. La misma conversión determinista funciona en el navegador y mediante la API, sin consultas de red ni conjeturas sobre el formato.
Pegue un único registro CSV completo
Introduzca exactamente un registro separado por comas en el campo de texto. Una entrada sencilla como <code>rojo,verde,azul</code> se convierte en tres líneas y conserva el orden. Las columnas vacías no se descartan: <code>rojo,,azul,</code> genera cuatro valores, incluidos el segundo y el último vacíos. Esto es esencial cuando la posición de cada columna tiene significado, pues eliminar huecos desplazaría todos los valores posteriores. Puede incluir un único terminador final LF, CRLF o CR, algo útil al copiar la fila desde un archivo o terminal. Cualquier separador de registro adicional que esté fuera de un campo entrecomillado se rechaza, ya que esta capacidad procesa una fila y no un documento CSV completo. No elimina espacios ni interpreta números, fechas, booleanos o palabras parecidas a valores nulos. Tras decodificar la sintaxis de comillas CSV, mantiene los caracteres de cada campo tal como usted los proporcionó. Así ofrece resultados previsibles con identificadores, etiquetas, direcciones, celdas y datos generados por máquinas, para los que una limpieza automática podría destruir información relevante.
Los campos entrecomillados se analizan como CSV
Dividir una cadena en cada coma deja de funcionar en cuanto una dirección, una descripción o una frase contiene puntuación. Esta capacidad emplea un analizador CSV con estado. Si un campo comienza con comillas dobles, las comas siguen formando parte de ese valor hasta la comilla de cierre correspondiente. Dos comillas dobles consecutivas dentro del campo se convierten en una comilla doble literal, según la regla de escape habitual de CSV. También puede haber saltos de línea dentro de un campo entrecomillado y se conservarán como parte del valor. Después de la comilla de cierre solo se admite una coma o el final del registro; cualquier carácter inesperado produce un error de entrada claro en lugar de una lista aparentemente válida pero incorrecta. Por el mismo motivo, se rechaza una comilla situada en medio de un campo sin entrecomillar. Estas comprobaciones estrictas permiten detectar pronto las exportaciones defectuosas y evitan cambiar silenciosamente su significado. El analizador realiza una sola pasada acotada, no usa servicios externos y devuelve siempre el mismo resultado para el mismo texto.
Use el resultado vertical donde sea más cómodo
La respuesta incluye un resultado unido con saltos de línea para copiarlo de inmediato, un array lines para usos estructurados y un recuento de campos para verificarlo. El texto unido se puede pegar en formularios multilínea, editores, listas permitidas, configuraciones, incidencias o rangos de una sola columna. El array es más seguro en código porque conserva los límites de cada campo CSV, incluidos los vacíos y los valores que contienen un salto de línea. Antes de automatizar, compare field_count con el número de columnas que espera el sistema receptor; una diferencia suele revelar una coma ausente, una columna final adicional o comillas mal formadas en el origen. Recurra a un analizador CSV completo si la entrada contiene encabezados y varias filas, requiere detectar el delimitador o necesita validación de esquema. Esta capacidad especializada es idónea cuando usted sabe que el origen es un solo registro separado por comas y solo desea pasar de campos horizontales a valores verticales. Cada solicitud de API cuesta $0.002; la versión del navegador realiza localmente el mismo análisis determinista.
Qué puede hacer con ella
Convertir celdas de una hoja en una lista
Pegue una fila exportada y copie sus columnas, una por línea, sin dañar las comas entrecomilladas.
Preparar datos para un formulario multilínea
Transforme un registro CSV de identificadores o etiquetas al formato por líneas que aceptan muchos formularios masivos.
Inspeccionar un registro problemático
Vea cada campo por separado para comprobar columnas vacías, comillas escapadas y el número real de valores.
Preguntas frecuentes
¿Gestiona comas dentro de los valores?
Sí. Las comas de un campo correctamente entrecomillado permanecen dentro del valor y no crean otra línea.
¿Cómo se escapan las comillas?
Dentro de un campo entrecomillado, dos comillas dobles consecutivas se convierten en una comilla doble literal.
¿Se conservan los campos CSV vacíos?
Sí. Se mantienen los campos vacíos iniciales, intermedios y finales para no desplazar las columnas.
¿Puedo enviar un archivo CSV completo?
No. Envíe exactamente un registro. Para encabezados y varias filas, utilice una capacidad de conversión CSV completa.
¿Elimina espacios o convierte tipos de datos?
No. Conserva los espacios sin entrecomillar y todos los campos analizados siguen siendo texto.
¿Cuánto cuesta?
La versión del navegador se ejecuta localmente sin coste. Una solicitud de API cuesta $0.002.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"text": "alpha,\"New York, NY\",\"She said \"\"hello\"\"\",omega"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.csv_row_to_lines",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_chars | 100000 |
max_fields | 10000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |