Conversor CSV para Tabela HTML

Converta CSV em uma tabela HTML

Experimente um exemplo

Entrada CSV

Saída HTML

Roda localmente · Seguro para colar segredos
A tabela HTML aparecerá aqui…
Primeira linha é cabeçalho:

O que é a Conversão de CSV para Tabela HTML?

A conversão de CSV para tabela HTML transforma valores separados por vírgula em marcação HTML estruturada que os navegadores podem renderizar como uma tabela visual. A saída utiliza os elementos padrão de tabela HTML definidos no HTML Living Standard: table, thead, tbody, tr, th e td. Esse processo mapeia cada linha do CSV para um elemento tr e cada campo para uma célula td ou th.

Arquivos CSV armazenam dados como texto simples, com linhas separadas por quebras de linha e campos separados por delimitadores (geralmente vírgulas). Embora o CSV funcione bem para armazenamento e transferência de dados entre aplicações como Excel, Google Sheets e bancos de dados, ele não possui camada de apresentação. As tabelas HTML adicionam essa camada envolvendo os dados em marcação semântica que suporta estilização com CSS, ordenação com JavaScript e acessibilidade por meio de atributos como scope e aria-label.

A conversão precisa tratar diversos casos especiais definidos pelo RFC 4180: campos entre aspas contendo vírgulas ou quebras de linha, aspas duplas escapadas dentro de campos e delimitadores variados (ponto e vírgula, tabulação, pipe). Um conversor correto também escapa entidades HTML no conteúdo das células, substituindo <, >, & e aspas pelos equivalentes em entidades, para evitar marcação corrompida ou vulnerabilidades XSS.

Por que usar um Conversor de CSV para Tabela HTML?

Construir tabelas HTML manualmente é tedioso e sujeito a erros, especialmente para conjuntos de dados com dezenas de colunas ou centenas de linhas. Este conversor resolve a análise, o escape e a formatação em uma única etapa.

Geração instantânea de tabelas
Cole o CSV e obtenha uma tabela HTML completa com estrutura correta de thead e tbody. Sem escrita manual de tags, sem contar células por linha.
🔒
Processamento com privacidade
Toda a conversão ocorre no seu navegador usando JavaScript. Seus dados CSV nunca são enviados a um servidor, nunca são registrados e nunca são armazenados.
🎯
Saída limpa e válida
O HTML gerado segue o HTML Living Standard com aninhamento correto: table > thead/tbody > tr > th/td. Caracteres especiais são convertidos em entidades para evitar problemas de renderização.
📋
Formatos de entrada flexíveis
Detecta automaticamente vírgulas, ponto e vírgula, tabulações e pipes como delimitadores. Trata as regras de citação do RFC 4180, incluindo aspas duplas escapadas e campos multilinha.

Casos de Uso do Conversor CSV para Tabela HTML

Desenvolvimento frontend
Gere uma tabela HTML a partir de dados de exemplo para prototipar um componente de interface. Copie a saída diretamente para um template React, Vue ou Angular e aplique classes CSS.
Criação de templates de e-mail
Clientes de e-mail (Outlook, Gmail) renderizam tabelas HTML de forma confiável, mas rejeitam a maioria dos métodos de layout CSS. Converta uma lista de contatos ou relatório em CSV para uma tabela que pode ser incorporada em um e-mail HTML.
Conteúdo para sites estáticos
Insira uma tabela HTML gerada em uma página Jekyll, Hugo ou Astro quando os dados vêm de uma exportação de planilha. Nenhum plugin de build é necessário.
Exibição de dados de teste para QA
Converta uma matriz de testes em CSV para uma tabela HTML para inclusão em um relatório de testes ou página do Confluence. Os revisores podem verificar os resultados sem abrir um aplicativo de planilha.
Jornalismo de dados
Transforme um conjunto de dados CSV em uma tabela HTML que pode ser estilizada e incorporada em um artigo de CMS. Adicione CSS para listras, ordenação ou responsividade após a conversão.
Ensino e documentação
Crie exemplos de tabelas HTML a partir de dados CSV reais para tutoriais, documentação de API ou materiais de cursos. Os estudantes visualizam tanto o formato de origem quanto a saída renderizada.

Referência de Elementos de Tabela HTML

Uma tabela HTML bem estruturada usa elementos semânticos que separam cabeçalhos, corpo e rodapé. Leitores de tela e mecanismos de busca utilizam esses elementos para entender a estrutura da tabela. Agrupar linhas com thead, tbody e tfoot permite que os navegadores apliquem rolagem independente e repitam linhas de cabeçalho em layouts de impressão.

ElementoFunçãoObservações
<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 Tabela HTML

CSV é um formato de transporte otimizado para simplicidade, enquanto HTML é um formato de apresentação otimizado para renderização, acessibilidade e interatividade nos navegadores.

CSV
Formato de texto simples. Sem tipos de dados: todo valor é uma string. Sem estilização, sem aninhamento, sem metadados. Linhas separadas por quebra de linha, campos separados por delimitador. Tamanho de arquivo mínimo. Suportado universalmente por planilhas, bancos de dados e ferramentas ETL. Definido pelo RFC 4180.
HTML Table
Formato de marcação com estrutura semântica. Distingue cabeçalhos (th) de dados (td). Suporta atributos como colspan, rowspan, scope e class para estilização e acessibilidade. Analisado pelos navegadores no DOM para interação com CSS e JavaScript. Pode ser ordenado, filtrado ou paginado com bibliotecas como DataTables sem nenhum processamento no servidor.

Exemplos de Código

Veja como converter CSV para tabelas HTML de forma programática em diferentes linguagens. Cada exemplo trata a linha de cabeçalho separadamente e escapa entidades HTML no conteúdo das células. Esses trechos estão prontos para uso em um script, um pipeline de build ou um endpoint de API backend que gera relatórios HTML a partir de exportações de dados.

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

Perguntas Frequentes

Como converter CSV em uma tabela HTML?
Cole seu CSV no painel de entrada. O conversor analisa cada linha, mapeia a primeira linha para elementos th dentro de thead e envolve as linhas restantes em elementos td dentro de tbody. A saída é uma tabela HTML completa e pronta para copiar.
O HTML gerado é acessível?
A saída usa elementos thead e th, que fornecem aos leitores de tela informações estruturais sobre a tabela. Para conformidade total com WCAG 2.1, você deve adicionar atributos scope às células de cabeçalho e um elemento caption descrevendo o conteúdo da tabela.
O que acontece com caracteres especiais como < e & no meu CSV?
O conversor escapa todos os caracteres sensíveis ao HTML: < torna-se &lt;, > torna-se &gt;, & torna-se &amp; e aspas duplas tornam-se &quot;. Isso evita marcação corrompida e protege contra XSS se você incorporar a tabela em uma página web.
Posso converter um arquivo separado por ponto e vírgula ou por tabulação?
Sim. A ferramenta detecta automaticamente o delimitador analisando a primeira linha da sua entrada. Suporta vírgulas, ponto e vírgula, tabulações e pipes. Não é necessário converter o arquivo para o formato separado por vírgula antecipadamente.
Qual é a diferença entre converter CSV para HTML e para tabelas Markdown?
CSV para HTML produz marcação renderizável pelo navegador com elementos semânticos (thead, tbody, th, td) e suporta estilização via classes CSS. CSV para Markdown produz tabelas em texto simples delimitadas por pipe, usadas em READMEs do GitHub e documentação. Use HTML quando precisar de controle de estilo ou compatibilidade com e-mail; use Markdown para documentação e repositórios.
O conversor trata arquivos CSV com campos entre aspas?
Sim. O analisador segue as regras do RFC 4180: campos delimitados por aspas duplas podem conter vírgulas, quebras de linha e aspas duplas literais (escapadas como dois aspas duplos consecutivos). As aspas são removidas da saída e o conteúdo do campo é colocado dentro da célula HTML.
Posso estilizar a tabela HTML gerada com CSS?
A saída é HTML simples sem estilos inline ou classes, então você pode aplicar qualquer CSS que desejar. Adicione uma classe ao elemento table e use seletores como table th para cabeçalhos, table td para células e table tr:nth-child(even) para listras zebra. Frameworks como Bootstrap e Tailwind têm classes utilitárias de tabela integradas.