100 % local — vos données ne quittent jamais votre navigateur

YAML en CSV — un tableur depuis une liste

Transformez une liste YAML en tableur. Chaque mappage devient une ligne et ses clés l’en-tête, prêt pour Excel ou Google Sheets.

Instantané Privé Zéro cookie
Délimiteur

Entrée YAML

Sortie CSV

Ce que fait cet outil

Une séquence YAML de dictionnaires devient des lignes :

- nom: Ada
  naissance: 1815
- nom: Alan
  naissance: 1912
nom,naissance
Ada,1815
Alan,1912

La racine doit être une liste

Un tableau est une liste d’enregistrements. Un dictionnaire à la racine — la forme de tout fichier de configuration — représente un enregistrement sans liste autour, et il n’y a rien de sensé à en faire. Si vous vouliez une ligne, écrivez - devant.

Plusieurs documents donnent plusieurs lignes

nom: Ada
---
nom: Alan

donne deux lignes. Un flux séparé par --- est une suite d’enregistrements, écrite dans l’autre sens : il se convertit comme telle.

Les colonnes qui ne s’alignent pas

L’en-tête est l’union de toutes les clés rencontrées, dans l’ordre d’apparition. Un enregistrement auquel il en manque une reçoit une cellule vide : rien n’est écarté pour cause d’irrégularité.

Ce qu’une cellule ne peut pas contenir

Une valeur. Quand une clé porte un dictionnaire ou une séquence, ce sous-arbre est écrit en JSON dans la cellule plutôt qu’étalé sur des noms de colonnes que l’outil devrait inventer. Aplatissez avant de convertir si vous voulez de vraies colonnes.

Les deux réglages

Séparateur — la virgule par défaut. Le point-virgule est ce qu’attend un Excel français, allemand ou espagnol, la virgule y servant déjà de séparateur décimal.

Ligne d’en-tête — activée par défaut. Désactivez-la quand le fichier alimente quelque chose qui n’attend que des données.

Confidentiel par conception

Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.

Questions fréquentes

Pourquoi mon dictionnaire est-il refusé ?
Parce qu’un CSV est une liste d’enregistrements et qu’un dictionnaire est une chose, pas une liste de choses. `a: 1` n’a aucune ligne. Emballez-le — `- a: 1` — et vous obtenez un tableau d’une ligne. Le refus est délibéré : deviner que votre fichier de configuration est un tableau produirait un tableau absurde.
Qu’advient-il d’une valeur imbriquée ?
Elle est écrite en JSON dans la cellule. Une cellule porte une valeur et votre clé porte un sous-arbre ; l’étaler sur des colonnes `parent.enfant` inventées imposerait une convention que personne n’a approuvée. Du JSON dans une cellule est laid, réversible et honnête.
Mes enregistrements n’ont pas tous les mêmes clés. Est-ce un problème ?
Non. L’en-tête est l’union de toutes les clés rencontrées, dans l’ordre d’apparition, et un enregistrement auquel il en manque une reçoit une cellule vide. Un export où seules certaines entrées portent un champ facultatif est normal, et écarter la colonne ou la ligne perdrait des données par souci d’ordre.

Convertisseurs associés