Convertidor de CSV a Tabla HTML

Convierte CSV a una tabla HTML

Prueba un ejemplo

Entrada CSV

Salida HTML

Se ejecuta localmente · Es seguro pegar secretos
La tabla HTML aparecerá aquí…
La primera fila es encabezado:

¿Qué es la conversión de CSV a tabla HTML?

La conversión de CSV a tabla HTML toma valores separados por comas y los transforma en marcado HTML estructurado que los navegadores pueden renderizar como una tabla visual. La salida utiliza los elementos de tabla HTML estándar definidos en el HTML Living Standard: table, thead, tbody, tr, th y td. Este proceso mapea cada fila CSV a un elemento tr y cada campo a una celda td o th.

Los archivos CSV almacenan datos como texto plano con filas separadas por saltos de línea y campos separados por delimitadores (típicamente comas). Aunque CSV funciona bien para el almacenamiento de datos y la transferencia entre aplicaciones como Excel, Google Sheets y bases de datos, no tiene capa de presentación. Las tablas HTML añaden esa capa envolviendo los datos en marcado semántico que admite estilos con CSS, ordenación con JavaScript y accesibilidad mediante atributos como scope y aria-label.

La conversión debe gestionar varios casos especiales definidos en RFC 4180: campos entre comillas que contienen comas o saltos de línea, comillas dobles escapadas dentro de campos, y delimitadores variables (punto y coma, tabuladores, tuberías). Un conversor correcto también escapa las entidades HTML en el contenido de las celdas, reemplazando <, >, & y comillas con sus equivalentes de entidad para evitar marcado roto o vulnerabilidades XSS.

¿Por qué usar un conversor de CSV a tabla HTML?

Construir tablas HTML a mano es tedioso y propenso a errores, especialmente para conjuntos de datos con decenas de columnas o cientos de filas. Este conversor gestiona el análisis, el escape y el formateo en un solo paso.

Generación instantánea de tablas
Pega CSV y obtén una tabla HTML completa con la estructura correcta de thead y tbody. Sin escritura manual de etiquetas, sin contar celdas por fila.
🔒
Procesamiento con privacidad garantizada
Toda la conversión se ejecuta en tu navegador usando JavaScript. Tus datos CSV nunca se envían a un servidor, nunca se registran y nunca se almacenan.
🎯
Salida limpia y válida
El HTML generado sigue el HTML Living Standard con anidamiento correcto: table > thead/tbody > tr > th/td. Los caracteres especiales se escapan como entidades para evitar problemas de renderizado.
📋
Formatos de entrada flexibles
Detecta automáticamente comas, punto y coma, tabuladores y tuberías como delimitadores. Gestiona las reglas de entrecomillado de RFC 4180, incluyendo comillas dobles escapadas y campos multilínea.

Casos de uso de CSV a tabla HTML

Desarrollo frontend
Genera una tabla HTML a partir de datos de muestra para prototipar un componente de interfaz. Copia la salida directamente en una plantilla de React, Vue o Angular y aplica clases CSS.
Creación de plantillas de correo
Los clientes de correo (Outlook, Gmail) renderizan las tablas HTML de forma fiable pero rechazan la mayoría de los métodos de maquetación CSS. Convierte una lista de contactos o un informe CSV en una tabla que puedes insertar en un correo HTML.
Contenido de sitios estáticos
Inserta una tabla HTML generada en una página de Jekyll, Hugo o Astro cuando tus datos provienen de una exportación de hoja de cálculo. No se necesita ningún plugin en tiempo de compilación.
Visualización de datos de pruebas QA
Convierte una matriz de pruebas CSV en una tabla HTML para incluirla en un informe de pruebas o una página de Confluence. Los revisores pueden analizar los resultados sin abrir una aplicación de hoja de cálculo.
Periodismo de datos
Transforma un conjunto de datos CSV en una tabla HTML que se puede estilizar e insertar en un artículo de CMS. Añade CSS para rayas, ordenación o ajuste responsive después de la conversión.
Enseñanza y documentación
Crea ejemplos de tablas HTML a partir de datos CSV reales para tutoriales, documentación de API o materiales de cursos. Los estudiantes ven tanto el formato fuente como la salida renderizada.

Referencia de elementos de tabla HTML

Una tabla HTML bien estructurada usa elementos semánticos que separan encabezados, cuerpo y pie. Los lectores de pantalla y los motores de búsqueda utilizan estos elementos para comprender la estructura de la tabla. Agrupar filas con thead, tbody y tfoot permite a los navegadores aplicar desplazamiento independiente y repetir las filas de encabezado en diseños de impresión.

ElementoFunciónNotas
<table>Table rootWraps the entire table structure
<thead>Header groupContains header rows; browsers repeat on print page breaks
<tbody>Body groupContains data rows; enables independent scrolling with CSS
<tfoot>Footer groupSummary or totals row; renders after tbody
<tr>Table rowGroups cells horizontally
<th>Header cellBold and centered by default; supports scope attribute for accessibility
<td>Data cellStandard content cell; accepts any inline or block HTML
<caption>Table captionVisible title above the table; read by screen readers first
<colgroup>Column groupApplies width or style to entire columns without per-cell classes

CSV vs tabla HTML

CSV es un formato de transporte optimizado para la simplicidad, mientras que HTML es un formato de presentación optimizado para el renderizado, la accesibilidad y la interactividad en los navegadores.

CSV
Formato de texto plano. Sin tipos de datos: cada valor es una cadena. Sin estilos, sin anidamiento, sin metadatos. Las filas se delimitan con saltos de línea y los campos con el separador elegido. El tamaño de archivo es mínimo. Compatible universalmente con hojas de cálculo, bases de datos y herramientas ETL. Definido por RFC 4180.
HTML Table
Formato de marcado con estructura semántica. Distingue encabezados (th) de datos (td). Admite atributos como colspan, rowspan, scope y class para estilos y accesibilidad. Los navegadores lo analizan en el DOM para la interacción con CSS y JavaScript. Se puede ordenar, filtrar o paginar con bibliotecas como DataTables sin ningún procesamiento en el servidor.

Ejemplos de código

Así se convierte CSV a tablas HTML mediante programación en distintos lenguajes. Cada ejemplo gestiona la fila de encabezado por separado y escapa las entidades HTML en el contenido de las celdas. Estos fragmentos están listos para insertarse en un script, una cadena de compilación o un endpoint de API que genere informes HTML a partir de exportaciones de datos.

JavaScript (browser / Node.js)
// CSV string → HTML table with thead/tbody
const csv = `name,age,city
Alice,30,Berlin
Bob,25,Tokyo`

function csvToHtmlTable(csv) {
  const rows = csv.trim().split('\n').map(r => r.split(','))
  const [headers, ...data] = rows
  const ths = headers.map(h => `<th>${h}</th>`).join('')
  const trs = data.map(row =>
    '    <tr>' + row.map(c => `<td>${c}</td>`).join('') + '</tr>'
  ).join('\n')
  return `<table>
  <thead><tr>${ths}</tr></thead>
  <tbody>
${trs}
  </tbody>
</table>`
}

console.log(csvToHtmlTable(csv))
// → <table><thead><tr><th>name</th>...</tr></thead><tbody>...</tbody></table>
Python
import csv, io, html

csv_string = """name,age,city
Alice,30,Berlin
Bob,25,Tokyo"""

reader = csv.reader(io.StringIO(csv_string))
headers = next(reader)

lines = ['<table>', '  <thead>', '    <tr>']
for h in headers:
    lines.append(f'      <th>{html.escape(h)}</th>')
lines += ['    </tr>', '  </thead>', '  <tbody>']

for row in reader:
    lines.append('    <tr>')
    for cell in row:
        lines.append(f'      <td>{html.escape(cell)}</td>')
    lines.append('    </tr>')

lines += ['  </tbody>', '</table>']
print('\n'.join(lines))
# → well-formed HTML table with escaped special characters
PHP
<?php
$csv = "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo";
$rows = array_map('str_getcsv', explode("\n", trim($csv)));
$headers = array_shift($rows);

echo "<table>\n  <thead>\n    <tr>\n";
foreach ($headers as $h) {
    echo "      <th>" . htmlspecialchars($h) . "</th>\n";
}
echo "    </tr>\n  </thead>\n  <tbody>\n";

foreach ($rows as $row) {
    echo "    <tr>\n";
    foreach ($row as $cell) {
        echo "      <td>" . htmlspecialchars($cell) . "</td>\n";
    }
    echo "    </tr>\n";
}
echo "  </tbody>\n</table>";
// → <table><thead>...<th>name</th>...</thead><tbody>...</tbody></table>
CLI (awk / csvtool)
# Using awk — quick one-liner for simple CSV (no quoted fields)
awk -F, 'NR==1{print "<table><thead><tr>";for(i=1;i<=NF;i++)print "<th>"$i"</th>";print "</tr></thead><tbody>"}
NR>1{print "<tr>";for(i=1;i<=NF;i++)print "<td>"$i"</td>";print "</tr>"}
END{print "</tbody></table>"}' data.csv

# Using Python one-liner for RFC 4180-compliant parsing
python3 -c "
import csv, sys, html
r=csv.reader(sys.stdin); h=next(r)
print('<table><thead><tr>')
print(''.join(f'<th>{html.escape(c)}</th>' for c in h))
print('</tr></thead><tbody>')
for row in r:
    print('<tr>'+''.join(f'<td>{html.escape(c)}</td>' for c in row)+'</tr>')
print('</tbody></table>')
" < data.csv

Preguntas frecuentes

¿Cómo convierto CSV a una tabla HTML?
Pega tu CSV en el panel de entrada. El conversor analiza cada fila, mapea la primera fila a elementos th dentro de thead y envuelve las filas restantes en elementos td dentro de tbody. La salida es una tabla HTML completa, lista para copiar.
¿El HTML generado es accesible?
La salida usa elementos thead y th, que proporcionan a los lectores de pantalla información estructural sobre la tabla. Para cumplimiento completo con WCAG 2.1, debes añadir atributos scope a las celdas de encabezado y un elemento caption que describa el contenido de la tabla.
¿Qué ocurre con caracteres especiales como < y & en mi CSV?
El conversor escapa todos los caracteres sensibles para HTML: < se convierte en &lt;, > en &gt;, & en &amp; y las comillas dobles en &quot;. Esto evita marcado roto y protege contra XSS si insertas la tabla en una página web.
¿Puedo convertir un archivo separado por punto y coma o por tabuladores?
Sí. La herramienta detecta automáticamente el delimitador analizando la primera fila de tu entrada. Admite comas, punto y coma, tabuladores y tuberías. No necesitas convertir previamente tu archivo a formato separado por comas.
¿Cuál es la diferencia entre convertir CSV a HTML y a tablas Markdown?
CSV a HTML produce marcado renderizable en el navegador con elementos semánticos (thead, tbody, th, td) y admite estilos mediante clases CSS. CSV a Markdown produce tablas de texto plano delimitadas por tuberías, usadas en READMEs de GitHub y documentación. Usa HTML cuando necesites control de estilos o compatibilidad con correo; usa Markdown para docs y repositorios.
¿El conversor gestiona archivos CSV con campos entre comillas?
Sí. El analizador sigue las reglas de RFC 4180: los campos entre comillas dobles pueden contener comas, saltos de línea y comillas dobles literales (escapadas como dos comillas dobles consecutivas). Las comillas se eliminan de la salida y el contenido del campo se coloca dentro de la celda HTML.
¿Puedo aplicar estilos CSS a la tabla HTML generada?
La salida es HTML plano sin estilos en línea ni clases, por lo que puedes aplicar cualquier CSS que desees. Añade una clase al elemento table, luego usa selectores como table th para encabezados, table td para celdas y table tr:nth-child(even) para rayas de cebra. Frameworks como Bootstrap y Tailwind tienen clases utilitarias de tabla integradas.