Ce que fait cet outil
Un tableau d’objets devient des lignes ; les clés deviennent l’en-tête.
[
{ "nom": "Ada", "naissance": 1815 },
{ "nom": "Alan", "naissance": 1912 }
]
nom,naissance
Ada,1815
Alan,1912
La racine doit être un tableau d’objets : un tableau est une liste d’enregistrements, et un objet seul n’a pas de lignes. Emballez-le dans [ ] si vous vouliez une ligne.
Les longs identifiants gardent leurs chiffres
[{ "id": 12345678901234567890 }]
ressort avec ses vingt chiffres. Les convertisseurs qui analysent d’abord le JSON en valeur JavaScript arrondissent au-delà d’une quinzaine — en silence, et vers un nombre qui ne correspond plus à la ligne dont il vient.
Trois ambiguïtés, nommées
Null et chaîne vide donnent la même cellule. null et "" ne produisent tous deux rien entre les séparateurs, et aucun lecteur ne les distinguera ensuite. Si la différence compte, CSV n’est pas la bonne destination.
Une valeur imbriquée devient du JSON dans la cellule. Une cellule porte une valeur ; votre clé porte un sous-arbre. L’étaler sur des colonnes parent.enfant inventées imposerait une convention que votre consommateur n’a jamais approuvée.
Les enregistrements irréguliers donnent une union. L’en-tête, c’est toutes les clés rencontrées, dans l’ordre d’apparition ; celui auquel il en manque une reçoit une cellule vide. Écarter la colonne, ou la ligne, perdrait des données pour l’amour d’un rectangle bien net.
L’option Excel
Excel ne lit pas de façon fiable un CSV en UTF-8 simple : il devine l’encodage d’après les octets, et devine le plus souvent la page de code héritée de votre système — c’est ainsi que café devient café.
Le réglage Excel écrit deux choses qu’Excel comprend : une marque d’ordre des octets, et une ligne sep=, en tête qui nomme le séparateur. Ni l’une ni l’autre n’est du CSV standard — sep= est même une extension Microsoft que les autres lecteurs afficheront comme une première ligne de données — d’où un réglage que l’on active, et non un défaut.
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.