Convertir un fichier CSV en XML
Chaque ligne du CSV devient un enregistrement XML ; un fichier Excel séparé par des points-virgules est reconnu tout seul
Vos données restent chez vous. La conversion se fait dans le navigateur ; rien n'est envoyé à un serveur.
Cet outil a-t-il fait le travail ?
Merci, votre retour nous est bien parvenu.
Comment ça marche
Le cas le plus courant est celui-ci : votre liste de produits ou de clients est dans Excel, et un logiciel de comptabilité, de gestion de stock ou de facturation la réclame en XML. Dans Excel, enregistrez le tableau en CSV (Fichier → Enregistrer sous → CSV), ouvrez le fichier obtenu dans le Bloc-notes (Windows) ou TextEdit (Mac), copiez tout le contenu et collez-le dans le panneau de gauche ; le XML apparaît à droite au moment même où vous collez. Un Excel réglé en français sépare les colonnes par des points-virgules, parce que la virgule y sert déjà de marque décimale ; l'outil s'en aperçoit en lisant les premières lignes, vous n'avez rien à régler. Un en-tête « Produit;Quantité;Prix unitaire » suivi de 200 lignes donne un seul document contenant 200 éléments <row>, chacun avec ses éléments <Produit>, <Quantité> et <Prix_unitaire>. Si le programme destinataire attend <produits> contenant des <produit>, écrivez ces deux mots dans les cases de racine et de ligne. Un en-tête avec une espace ou une parenthèse est adapté avec des tirets bas (« Prix unitaire » → Prix_unitaire) et un en-tête qui commence par un chiffre reçoit un tiret bas devant ; la ligne de résultat indique combien d'en-têtes ont changé et lesquels. Les accents restent : « Quantité » est un nom d'élément valide. Les valeurs des cellules passent telles quelles : un montant 1 250,00 et un numéro de téléphone qui commence par 06 ne sont pas retouchés, car XML ne connaît pas de type nombre et c'est au programme lecteur d'interpréter le texte. Un point-virgule ou un retour à la ligne placé entre guillemets fait partie de la donnée et ne coupe pas la colonne. Copiez le résultat en un clic ou téléchargez-le en .xml.
Cet outil est aussi connu sous le nom de convertir csv en xml, csv en xml, csv vers xml, convertir un fichier csv en xml, csv to xml, excel csv en xml.
Qu'est-ce que CSV ?
Un fichier CSV est un tableau en texte brut : une ligne par enregistrement, et dans chaque ligne les cellules sont séparées par un même signe. Excel, Google Sheets, les espaces bancaires en ligne et les boutiques en ligne proposent ce format à l'export. La difficulté est que ce signe n'est pas unique : le nom promet une « virgule », mais un Excel en français écrit des points-virgules, un tableau copié-collé contient des tabulations, et certains rapports utilisent la barre verticale. Quand une cellule contient elle-même le séparateur, elle est mise entre guillemets, et un guillemet à l'intérieur est doublé ; un lecteur qui ignore cette règle coupe « Assiette ; porcelaine » en deux colonnes. Cet outil détecte le séparateur d'après les premières lignes et applique la règle des guillemets.
Qu'est-ce que XML ?
XML est un format texte où chaque valeur est placée entre une balise ouvrante et une balise fermante : <Prix>320,00</Prix>. Les balises sont des éléments ; les paires nom="valeur" écrites dans la balise ouvrante sont des attributs ; le document a un seul élément le plus extérieur, la racine, et toutes les données vivent à l'intérieur, emboîtées. Un nom d'élément commence par une lettre ou un tiret bas et ne contient pas d'espace ; c'est pour cela que les en-têtes d'un tableau sont souvent adaptés en passant vers XML. Si les logiciels de comptabilité, les ERP et les échanges avec les organismes publics demandent du XML, c'est parce que chaque valeur y annonce par son nom à quel champ elle appartient, et non par sa position dans la ligne.
Quelle différence entre un fichier CSV et un fichier XML ?
Le CSV est un tableau : les données se comprennent par leur position, la troisième cellule est ce que dit la troisième colonne de l'en-tête, et il suffit que le séparateur, les guillemets ou la marque décimale changent pour que le fichier se casse sans prévenir. En XML, chaque valeur est enfermée dans sa propre balise, l'ordre des colonnes n'a plus d'importance, le document se décrit lui-même et peut être vérifié par un schéma (XSD) ; le prix à payer est la taille, le même tableau est plusieurs fois plus long en XML. Aucun des deux ne porte de type : « 1 250,00 » est du texte dans l'un comme dans l'autre ; la différence est que XML sait donner un nom à ce texte et le placer dans une structure emboîtée. Pour ouvrir le tableau dans Excel, gardez le CSV ; pour le remettre à un programme ou à un organisme, prenez le XML.
Trois pièges : le nom des en-têtes, la virgule décimale, le séparateur entre guillemets
Le nom des en-têtes : un nom d'élément XML n'accepte ni espace, ni parenthèse, ni la plupart des signes de ponctuation, et il ne peut pas commencer par un chiffre. Écrit tel quel, un en-tête « Prix unitaire » rendrait le document illisible pour n'importe quel programme. Plutôt que de supprimer l'en-tête en silence, l'outil l'adapte et le signale dans la ligne de résultat : « Prix unitaire » → <Prix_unitaire>, « 2024 ventes » → <_2024_ventes>, « Prix (EUR) » → <Prix__EUR_>. Les lettres accentuées sont conservées ; é, è, ç et œ sont valides dans un nom XML. Si le même en-tête apparaît dans deux colonnes, le second reçoit le suffixe _2 pour que les deux colonnes ne se confondent pas.
La virgule décimale : cet outil n'interprète pas le contenu des cellules. Contrairement à l'outil CSV en JSON, il n'y a pas ici d'étape « convertir en nombre », parce que XML n'a pas de type nombre ; chaque valeur est du texte entre deux balises. Un montant 1 250,00, un taux 12,5 et un numéro qui commence par 06 sortent donc exactement comme vous les avez écrits. Si le programme destinataire ne sait pas lire la virgule comme marque décimale, changez l'écriture dans Excel avant la conversion ; l'outil ne devine pas à votre place.
Le séparateur entre guillemets : dans une cellule entre guillemets comme « Assiette ; porcelaine », le point-virgule ne coupe pas la colonne, et un retour à la ligne entre guillemets ne coupe pas l'enregistrement ; un guillemet doublé ("") est lu comme un guillemet simple. Si une ligne a plus de cellules que l'en-tête, les cellules en trop s'appellent colonne4, colonne5… ; sur une ligne plus courte, le champ manquant n'est pas écrit du tout et n'est pas pris pour un élément vide.
- « Prix unitaire » → <Prix_unitaire> (l'espace devient un tiret bas, et c'est signalé)
- « 2024 ventes » → <_2024_ventes> (un tiret bas devant le nom qui commence par un chiffre)
- 1 250,00 · 12,5 · 0612… → texte inchangé, jamais interprété
- « Assiette ; porcelaine » → une seule cellule, le séparateur entre guillemets est une donnée
Quel réglage pour quel fichier ?
Le nom de l'élément de ligne : row, la valeur par défaut, passe dans la plupart des écrans d'import ; mais si le système en face attend un nom précis (produit pour une liste de produits, client pour un fichier clients, ecriture pour un journal comptable), écrivez-le et la sortie devient utilisable telle quelle. Le nom que vous tapez suit la même règle XML : « fiche produit » donnera <fiche_produit>.
Le nom de l'élément racine : XML exige un seul élément au sommet ; root est un nom passe-partout, donc sans risque, mais si la structure demandée est <produits> contenant des <produit>, écrivez produits dans la case de racine. Un pluriel pour la racine et un singulier pour la ligne est l'usage courant, et c'est aussi ce qui trompe le moins la personne qui lira le document.
La cellule vide : si le programme destinataire cherche les mêmes champs dans chaque enregistrement (c'est le cas de la plupart des imports), gardez « Écrire un élément vide » ; une cellule téléphone vide donne <Telephone/> et le nombre de champs reste constant. Pour un document plus petit, ou si un champ vide ne doit pas apparaître, choisissez « Sauter » : l'élément n'est pas écrit pour cet enregistrement. Ne choisissez le séparateur à la main que si la détection se trompe : quand les premières lignes du fichier contiennent aussi des points-virgules dans le texte, forcer « Point-virgule » donne un résultat sûr.
Questions fréquentes
Comment convertir un fichier CSV en XML ?
Ouvrez le fichier CSV dans le Bloc-notes, TextEdit ou n'importe quel éditeur de texte, copiez son contenu et collez-le dans le panneau de gauche de cette page ; le XML se forme aussitôt dans le panneau de droite. La première ligne est prise pour l'en-tête et chaque en-tête devient un nom d'élément ; chaque ligne de données devient un élément <row>. Vous pouvez copier le résultat ou le télécharger en fichier .xml.
Pourquoi mon CSV enregistré depuis Excel sort-il en une seule colonne ?
Sur un Windows en français, Excel utilise la virgule comme marque décimale et sépare donc le CSV par des points-virgules ; un programme qui attend des virgules voit ce fichier comme une seule colonne. Sur cette page, le séparateur est détecté d'après les premières lignes, un fichier à points-virgules est donc découpé correctement. Si vous voyez encore une seule colonne, choisissez « Point-virgule — Excel en français » dans le réglage « Signe qui sépare les colonnes » ; le nombre de champs dans la ligne de résultat confirme la correction.
Pourquoi les noms de colonnes ont-ils changé dans le XML ?
Un nom d'élément XML n'accepte ni espace, ni parenthèse, ni guillemet, et ne peut commencer ni par un chiffre ni par « xml ». Un en-tête qui enfreint cette règle, écrit tel quel, rendrait le document impossible à analyser. L'outil adapte l'en-tête au lieu de le supprimer : les espaces et les signes interdits deviennent des tirets bas, un nom qui commence par un chiffre reçoit un tiret bas devant, les accents sont gardés. La ligne de résultat indique combien d'en-têtes ont changé et lesquels ; des en-têtes simples dès le départ dans le CSV ne changent pas.
Les données que je colle sont-elles envoyées à un serveur ?
Non. L'analyse du CSV et la production du XML se font entièrement dans votre navigateur ; que vous colliez une liste de produits, un fichier clients ou une grille de prix, rien ne quitte cette page et rien n'est enregistré nulle part. Une fois la page ouverte, la conversion fonctionne même si la connexion Internet est coupée.