CSV en tableau HTML

Convertir du CSV en tableau HTML

Essayer un exemple

Entrée CSV

Sortie HTML

Fonctionne localement · Sûr pour coller des secrets
Le tableau HTML s'affichera ici…
La première ligne est l'en-tête :

Qu'est-ce que la conversion CSV en tableau HTML ?

La conversion CSV en tableau HTML prend des valeurs séparées par des virgules et les transforme en balisage HTML structuré que les navigateurs peuvent afficher sous forme de tableau visuel. Le résultat utilise les éléments HTML standard définis dans le HTML Living Standard : table, thead, tbody, tr, th et td. Ce processus associe chaque ligne CSV à un élément tr et chaque champ à une cellule td ou th.

Les fichiers CSV stockent les données en texte brut, avec des lignes séparées par des sauts de ligne et des champs séparés par des délimiteurs (généralement des virgules). Si CSV fonctionne bien pour le stockage et le transfert de données entre des applications comme Excel, Google Sheets et des bases de données, il ne possède pas de couche de présentation. Les tableaux HTML ajoutent cette couche en enveloppant les données dans un balisage sémantique qui prend en charge la mise en style avec CSS, le tri avec JavaScript et l'accessibilité via des attributs comme scope et aria-label.

La conversion doit gérer plusieurs cas particuliers définis dans la RFC 4180 : les champs entre guillemets contenant des virgules ou des sauts de ligne, les guillemets doubles échappés à l'intérieur des champs, et les délimiteurs variables (points-virgules, tabulations, pipes). Un convertisseur correct échappe également les entités HTML dans le contenu des cellules, en remplaçant <, >, & et les guillemets par leurs équivalents d'entité, afin d'éviter un balisage cassé ou des failles XSS.

Pourquoi utiliser un convertisseur CSV en tableau HTML ?

Créer des tableaux HTML à la main est fastidieux et source d'erreurs, surtout pour des jeux de données avec des dizaines de colonnes ou des centaines de lignes. Ce convertisseur prend en charge l'analyse, l'échappement et la mise en forme en une seule étape.

Génération instantanée de tableau
Collez du CSV et obtenez un tableau HTML complet avec une structure thead et tbody correcte. Pas d'écriture manuelle de balises, pas de décompte de cellules par ligne.
🔒
Traitement axé sur la confidentialité
Toute la conversion s'exécute dans votre navigateur via JavaScript. Vos données CSV ne sont jamais envoyées à un serveur, jamais consignées et jamais stockées.
🎯
Sortie propre et valide
Le HTML généré suit le HTML Living Standard avec un imbrication correcte : table > thead/tbody > tr > th/td. Les caractères spéciaux sont échappés en entités pour éviter les problèmes d'affichage.
📋
Formats d'entrée flexibles
Détecte automatiquement les virgules, points-virgules, tabulations et pipes comme délimiteurs. Gère les règles de citation RFC 4180, y compris les guillemets doubles échappés et les champs multiligne.

Cas d'usage du convertisseur CSV en tableau HTML

Développement frontend
Générez un tableau HTML à partir de données d'exemple pour prototyper un composant d'interface. Copiez le résultat directement dans un template React, Vue ou Angular et appliquez des classes CSS.
Création de templates d'e-mail
Les clients de messagerie (Outlook, Gmail) affichent les tableaux HTML de manière fiable mais rejettent la plupart des méthodes de mise en page CSS. Convertissez une liste de contacts ou un rapport CSV en tableau à intégrer dans un e-mail HTML.
Contenu de site statique
Insérez un tableau HTML généré dans une page Jekyll, Hugo ou Astro lorsque vos données proviennent d'un export de tableur. Aucun plugin de build requis.
Affichage de données de test QA
Convertissez une matrice de tests CSV en tableau HTML pour l'inclure dans un rapport de test ou une page Confluence. Les relecteurs peuvent parcourir les résultats sans ouvrir un tableur.
Journalisme de données
Transformez un jeu de données CSV en tableau HTML pouvant être stylisé et intégré dans un article CMS. Ajoutez du CSS pour le rayage, le tri ou l'habillage responsive après la conversion.
Enseignement et documentation
Créez des exemples de tableaux HTML à partir de données CSV réelles pour des tutoriels, de la documentation d'API ou du matériel pédagogique. Les apprenants voient à la fois le format source et le résultat affiché.

Référence des éléments de tableau HTML

Un tableau HTML bien structuré utilise des éléments sémantiques qui séparent les en-têtes, le corps et le pied de tableau. Les lecteurs d'écran et les moteurs de recherche utilisent ces éléments pour comprendre la structure du tableau. Regrouper les lignes avec thead, tbody et tfoot permet aux navigateurs d'appliquer un défilement indépendant et de répéter les lignes d'en-tête dans les mises en page imprimées.

ÉlémentRôleNotes
<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 tableau HTML

CSV est un format de transport optimisé pour la simplicité, tandis que HTML est un format de présentation optimisé pour le rendu, l'accessibilité et l'interactivité dans les navigateurs.

CSV
Format texte brut. Pas de types de données : chaque valeur est une chaîne. Pas de style, pas d'imbrication, pas de métadonnées. Les lignes sont délimitées par des sauts de ligne, les champs par des délimiteurs. La taille des fichiers est minimale. Universellement pris en charge par les tableurs, les bases de données et les outils ETL. Défini par la RFC 4180.
HTML Table
Format de balisage avec structure sémantique. Distingue les en-têtes (th) des données (td). Prend en charge des attributs comme colspan, rowspan, scope et class pour la mise en style et l'accessibilité. Analysé par les navigateurs dans le DOM pour l'interaction CSS et JavaScript. Peut être trié, filtré ou paginé avec des bibliothèques comme DataTables sans aucun traitement côté serveur.

Exemples de code

Voici comment convertir du CSV en tableaux HTML par programmation dans différents langages. Chaque exemple traite la ligne d'en-tête séparément et échappe les entités HTML dans le contenu des cellules. Ces extraits sont prêts à être intégrés dans un script, un pipeline de build ou un endpoint d'API backend qui génère des rapports HTML à partir d'exports de données.

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

Questions fréquentes

Comment convertir du CSV en tableau HTML ?
Collez votre CSV dans le panneau d'entrée. Le convertisseur analyse chaque ligne, associe la première ligne à des éléments th dans thead, et enveloppe les lignes suivantes dans des éléments td dans tbody. Le résultat est un tableau HTML complet, prêt à être copié.
Le HTML généré est-il accessible ?
Le résultat utilise les éléments thead et th, qui fournissent aux lecteurs d'écran des informations structurelles sur le tableau. Pour une conformité complète WCAG 2.1, vous devez ajouter des attributs scope aux cellules d'en-tête et un élément caption décrivant le contenu du tableau.
Que se passe-t-il avec les caractères spéciaux comme < et & dans mon CSV ?
Le convertisseur échappe tous les caractères sensibles au HTML : < devient &lt;, > devient &gt;, & devient &amp; et les guillemets doubles deviennent &quot;. Cela évite un balisage cassé et protège contre les failles XSS si vous intégrez le tableau dans une page web.
Puis-je convertir un fichier séparé par des points-virgules ou des tabulations ?
Oui. L'outil détecte automatiquement le délimiteur en analysant la première ligne de votre entrée. Il prend en charge les virgules, points-virgules, tabulations et pipes. Vous n'avez pas besoin de pré-convertir votre fichier au format séparé par des virgules.
Quelle est la différence entre CSV en HTML et CSV en tableaux Markdown ?
CSV en HTML produit un balisage affichable par les navigateurs avec des éléments sémantiques (thead, tbody, th, td) et prend en charge la mise en style via des classes CSS. CSV en Markdown produit des tableaux en texte brut délimités par des pipes, utilisés dans les README GitHub et la documentation. Utilisez HTML lorsque vous avez besoin d'un contrôle de style ou d'une compatibilité e-mail ; utilisez Markdown pour la documentation et les dépôts.
Le convertisseur gère-t-il les fichiers CSV avec des champs entre guillemets ?
Oui. L'analyseur suit les règles RFC 4180 : les champs entre guillemets doubles peuvent contenir des virgules, des sauts de ligne et des guillemets doubles littéraux (échappés sous forme de deux guillemets doubles consécutifs). Les guillemets sont supprimés du résultat et le contenu du champ est placé dans la cellule HTML.
Puis-je styliser le tableau HTML généré avec CSS ?
Le résultat est du HTML brut sans styles en ligne ni classes, vous pouvez donc appliquer n'importe quel CSS. Ajoutez une classe à l'élément table, puis utilisez des sélecteurs comme table th pour les en-têtes, table td pour les cellules, et table tr:nth-child(even) pour le rayage zébré. Les frameworks comme Bootstrap et Tailwind proposent des classes utilitaires de tableau intégrées.