Ouvrez ou collez un fichier CSV pour obtenir un <table> avec un <thead> d’en-têtes <th scope="col"> et un <tr> par ligne, ou une page HTML complète à ouvrir directement. Chaque valeur est échappée en HTML : un <script> ou un & dans vos données s’affiche comme du texte et ne devient jamais du balisage. La conversion a lieu dans votre navigateur, sans jamais envoyer le fichier.
Convertir un CSV en HTML, étape par étape
- Cliquez sur Ouvrir un fichier, déposez un fichier
.csv,.tsvou.txtsur l’outil, ou choisissez Coller. Si les colonnes semblent fausses, ajustez le séparateur ou l’encodage dans Paramètres d’importation. - Sous Sortie, choisissez Tableau seul pour coller le balisage dans une page existante ou un CMS, ou Page HTML complète pour obtenir un fichier autonome.
- Ajoutez une Légende (facultatif), réglez la mise en forme et les retours à la ligne, puis choisissez Copier ou Télécharger en HTML.
Pour un README ou un wiki, un tableau Markdown est en général plus facile à modifier ; pour un fichier imprimable, utilisez CSV en PDF.
Options du tableau HTML
| Tableau seul | Le réglage par défaut. Uniquement l’élément <table>, prêt à coller dans une page, un modèle d’e-mail ou un bloc HTML de CMS. |
|---|---|
| Page HTML complète | Ajoute <!doctype html>, <html lang="en"> (la balise de langue suit la langue du site : lang="fr" sur la version française), <meta charset="utf-8"> et un <title> (la légende, ou Table à défaut), pour que le fichier s’ouvre correctement dans n’importe quel navigateur. |
| Légende (facultatif) | Écrit un <caption> comme premier enfant du tableau : c’est le nom accessible que les lecteurs d’écran annoncent pour le tableau. |
| Ajouter une mise en forme simple | Activé par défaut. Dans une page complète, une petite feuille de style est intégrée : bordures, ligne d’en-têtes ombrée et nombres alignés à droite. Avec Tableau seul, l’option ajoute plutôt class="csv-table" au tableau et class="num" aux cellules numériques, pour que votre propre CSS décide de l’apparence. |
| Afficher les retours à la ligne dans les cellules | Activé par défaut. Un saut de ligne à l’intérieur d’une valeur devient <br>. Désactivé, le saut reste dans le code source, où les navigateurs l’affichent comme une espace. |
Échappement, sens du texte et nombres
&,<,>,"et'sont écrits&,<,>,"et'dans chaque cellule, chaque en-tête et la légende. Les balises de vos données apparaissent comme du texte, ce qui signifie aussi que le HTML déjà présent dans le CSV n’est pas interprété.- Chaque cellule porte
dir="auto": les valeurs en arabe ou en hébreu s’affichent de droite à gauche, même dans une page de gauche à droite. - Une colonne n’est considérée comme numérique que si toutes ses valeurs non vides sont des nombres simples ; une colonne d’identifiants comme
0042reste du texte et n’est pas alignée à droite. Les valeurs elles-mêmes ne sont jamais reformatées. - Les virgules, guillemets et sauts de ligne entre guillemets sont lus selon la RFC 4180. Un en-tête vide devient
Column 3et un en-tête répéténame (2). - Le résultat est en UTF-8. Une page complète le déclare avec
<meta charset="utf-8">; si vous collez le Tableau seul dans une autre page, celle-ci doit elle aussi être en UTF-8.
Quand le tableau HTML s’affiche mal
- Les lettres accentuées s’affichent en é dans le fichier source. Le CSV n’est pas en UTF-8. Choisissez son encodage (souvent Windows-1252 pour les exports d’anciennes versions d’Excel) dans les paramètres d’importation, puis rouvrez-le.
- Les balises de mes données s’affichent comme du texte. Le HTML de vos cellules a été échappé volontairement pour ne pas pouvoir s’exécuter comme du balisage. Modifiez le résultat si vous faites confiance à ce contenu et voulez qu’il soit interprété.
- Le tableau collé n’a pas de bordures. Tableau seul ajoute des noms de classes (si la mise en forme est activée), pas de CSS. Définissez le style de
.csv-tableettd.numdans la feuille de style de votre site, ou choisissez Page HTML complète pour obtenir les styles intégrés. - Une seule colonne contient toutes les valeurs. Le séparateur a été mal deviné ; réglez-le dans les paramètres d’importation.
Limites et confidentialité
Les fichiers jusqu’à 25 Mo, 100 000 lignes ou 2 millions de cellules s’ouvrent avec un aperçu en direct des 200 premières lignes. Les fichiers plus gros sont convertis en flux : le fichier est lu deux fois par morceaux (une fois pour mesurer les colonnes et repérer les colonnes numériques, une fois pour écrire), un avertissement précise que le téléchargement couvre tout le fichier, et Copier n’est pas proposé. Un fichier produit est plafonné à 4 Go.
La conversion s’exécute dans un worker en arrière-plan, dans cet onglet : la page reste réactive et Annuler l’interrompt. Le CSV n’est jamais envoyé sur un serveur.
Exemple : une liste de commandes avec des caractères sensibles en HTML
Une liste de commandes avec une esperluette, une apostrophe, des guillemets et du HTML dans un commentaire sur deux lignes, convertie avec les réglages par défaut (Tableau seul, mise en forme, retours à la ligne affichés). qty ne contient que des nombres : ses cellules reçoivent class="num".
id,product,qty,comment 0042,Fish & Chips,2,"<b>Extra</b> vinegar no salt" 0043,"O'Brien's ""Stout""",12,
<table class="csv-table">
<thead>
<tr>
<th scope="col">id</th>
<th scope="col">product</th>
<th scope="col">qty</th>
<th scope="col">comment</th>
</tr>
</thead>
<tbody>
<tr>
<td dir="auto">0042</td>
<td dir="auto">Fish & Chips</td>
<td class="num" dir="auto">2</td>
<td dir="auto"><b>Extra</b> vinegar<br>no salt</td>
</tr>
<tr>
<td dir="auto">0043</td>
<td dir="auto">O'Brien's "Stout"</td>
<td class="num" dir="auto">12</td>
<td dir="auto"></td>
</tr>
</tbody>
</table>Questions fréquentes
Puis-je coller le résultat sans risque dans mon site ?
Les données ne peuvent pas injecter de balisage : chaque valeur, chaque en-tête et la légende sont échappés en HTML, et aucune valeur n’est jamais placée dans un attribut. Les seules balises du résultat sont les éléments de tableau que le convertisseur écrit lui-même.
Pourquoi la page indique-t-elle lang="fr" ?
Une page complète reprend sa balise de langue de la langue du site que vous utilisez : ici, le français. Modifiez l’attribut lang après le téléchargement si vos données sont dans une autre langue.
Puis-je trier ou filtrer le tableau HTML ?
Le résultat est un tableau statique, sans script. Triez ou filtrez d’abord les données avec Trier les lignes d’un CSV ou Filtrer les lignes d’un CSV, puis convertissez-les.