Convertir CSV en XML : méthodes, pièges et cas des fichiers SEPA

2026-10-24

Votre logiciel de gestion exporte un CSV. Le portail d’un client, un outil métier ou votre banque, lui, réclame un fichier XML. Vous essayez un convertisseur en ligne, le résultat s’ouvre sans erreur… et il est refusé à l’import parce que les balises ne portent pas les bons noms, que les accents sont devenus des caractères illisibles ou que les montants affichent une virgule là où un point était attendu.

Convertir un CSV en XML est simple tant que le XML cible n’impose rien : chaque ligne devient un élément, chaque colonne une balise. La difficulté commence dès que le fichier XML doit respecter un schéma précis, avec une hiérarchie, des champs obligatoires et des formats stricts. C’est le cas des fichiers bancaires SEPA, mais aussi des factures électroniques, des catalogues produits ou des déclarations administratives.

Cet article passe en revue les méthodes de conversion (outil en ligne, Excel, script, XSLT), les pièges propres aux CSV produits en France et le cas particulier d’un fichier de virements ou de prélèvements SEPA. Si votre besoin est uniquement bancaire, le guide CSV vers XML SEPA va plus loin sur ce point.

Convertir un CSV en XML : bien plus qu’un changement d’extension

Bureau avec un ordinateur portable affichant un tableur et un écran montrant du code XML

Un CSV est un tableau à plat : une ligne d’en-têtes, puis une ligne par enregistrement, les valeurs séparées par un caractère. Il ne dit rien des relations entre les données. Le format CSV n’a d’ailleurs jamais eu de norme unique respectée par tous les logiciels.

Un XML est un arbre. Il peut contenir un en-tête, des groupes, des sous-groupes et des éléments répétés. Prenons un export de factures :

client;facture;date;montant
Boulangerie Martin;F-2026-114;05/10/2026;1250,50
Boulangerie Martin;F-2026-121;12/10/2026;380,00
Garage Dupuis;F-2026-117;07/10/2026;920,00

Une conversion naïve produit trois éléments <ligne> indépendants. Le système destinataire attend peut-être un élément <client> contenant ses factures, un total par client et un en-tête avec le nombre de lignes et la somme globale. Ces décisions ne figurent nulle part dans le CSV : c’est à vous de les prendre.

Idée clé : la question n’est pas « comment convertir ce CSV en XML ? », mais « quel XML le destinataire attend-il, et comment chaque colonne s’y range-t-elle ? ». Commencez toujours par le schéma cible.

Préparer un CSV « à la française » avant la conversion

Les exports produits en France ont des particularités qui cassent beaucoup d’outils conçus pour l’anglais. Les corriger avant la conversion vous évite la moitié des rejets.

Piège Ce que vous voyez Ce qu’attend le XML Correction
Séparateur Point-virgule (Excel en français) Le convertisseur attend souvent une virgule Déclarer le séparateur ; ou réexporter
Encodage « Société » à la place de « Société » UTF-8 Enregistrer en « CSV UTF-8 » plutôt qu’en CSV Windows
Décimales 1250,50 1250.50 Remplacer la virgule par un point dans les montants
Milliers 1 250,50 avec espace Aucun séparateur Supprimer les espaces dans les nombres
Dates 05/10/2026 2026-10-05 (ISO 8601) Convertir au format AAAA-MM-JJ
Nombres longs IBAN ou SIRET affiché 3,00E+13 Texte intégral Formater la colonne en texte avant l’export
Lignes parasites Totaux, lignes vides en bas du fichier Uniquement des enregistrements Supprimer avant la conversion

Le centre d’aide explique comment enregistrer un fichier Excel en CSV sans perdre les accents ni les zéros en tête.

Un dernier point : le jeu de caractères. Certains XML, comme les fichiers SEPA, ne garantissent que l’alphabet latin de base. Les accents, cédilles et caractères spéciaux (&, <, >) doivent alors être translittérés ou échappés. « Crêperie Lefèvre & Fils » deviendra « Creperie Lefevre et Fils ».

Méthodes pour convertir un CSV en XML

Il n’existe pas de meilleure méthode dans l’absolu. Tout dépend de la fréquence, du volume et de la rigueur du XML cible.

Le convertisseur en ligne

Vous déposez le CSV, l’outil renvoie un XML générique. C’est pratique pour un test ou une transformation ponctuelle sans contrainte de schéma. Deux limites : la structure produite est plate et standard, et vous envoyez vos données à un service tiers. Pour un fichier contenant des IBAN, des salaires ou des données clients, c’est rarement acceptable.

Excel et les mappages XML

Excel sait exporter du XML si vous lui fournissez un schéma XSD. Dans l’onglet Développeur, le volet Source XML permet d’associer chaque colonne à un élément du schéma, puis d’exporter. Cela fonctionne bien pour une liste simple répétée. En revanche, Excel refuse les structures imbriquées sur plusieurs niveaux (des « listes de listes »), ce qui exclut la plupart des formats bancaires.

Un script (Python, PHP, Node.js)

Pour un besoin récurrent, quelques lignes de code donnent un contrôle total :

import csv
import xml.etree.ElementTree as ET

racine = ET.Element("factures")
with open("export.csv", encoding="utf-8", newline="") as f:
    for ligne in csv.DictReader(f, delimiter=";"):
        facture = ET.SubElement(racine, "facture", numero=ligne["facture"])
        ET.SubElement(facture, "client").text = ligne["client"]
        ET.SubElement(facture, "montant").text = ligne["montant"].replace(",", ".")

ET.ElementTree(racine).write("factures.xml", encoding="utf-8", xml_declaration=True)

Le script gère le séparateur et la virgule décimale. Il reste à ajouter le regroupement, les totaux, les contrôles et la gestion des erreurs, et c’est là que le temps de développement s’accumule.

XSLT et les couches de mapping

Dans les environnements plus lourds, on convertit d’abord le CSV en XML intermédiaire, puis une feuille XSLT le transforme vers le schéma final. L’avantage : les règles de transformation sont isolées et documentées. L’inconvénient : une compétence rare dans une PME.

Méthode Idéal pour Limites Compétences
Convertisseur en ligne Test ponctuel, XML sans schéma Structure plate, confidentialité des données Aucune
Excel + XSD Liste simple, usage occasionnel Pas d’imbrication multiple, manipulations manuelles Bureautique avancée
Script maison Flux récurrent, besoin spécifique Maintenance, tests, suivi des versions de schéma Développeur
XSLT Systèmes d’information complexes Courbe d’apprentissage Développeur spécialisé
Outil métier dédié Format normé (SEPA, facture) Limité à son domaine Aucune

Le cas SEPA : quand le CSV doit devenir un pain.001 ou un pain.008

Schéma de transformation d’un tableau CSV plat en structure XML hiérarchique

Les fichiers de virements (pain.001) et de prélèvements (pain.008) illustrent parfaitement l’écart entre CSV plat et XML hiérarchique. Votre tableur contient une ligne par bénéficiaire ou par débiteur. Le XML attendu par BNP Paribas, LCL ou La Banque Postale comporte trois niveaux :

  1. L’en-tête du message (GrpHdr) : identifiant unique, date de création, nombre total d’opérations, somme de contrôle.
  2. Un ou plusieurs lots (PmtInf) : le compte débité ou crédité, la date d’exécution ou d’échéance, le type de prélèvement (CORE ou B2B) et la séquence (FRST, RCUR).
  3. Les opérations : IBAN, nom, montant, référence de bout en bout et, pour un prélèvement, la RUM et la date de signature du mandat.

Il faut donc regrouper les lignes par date et par type, calculer les totaux, formater les montants avec un point et deux décimales, respecter les longueurs maximales (70 caractères pour un nom, 140 pour le libellé) et n’utiliser que les caractères admis par les règles de mise en œuvre de l’EPC. Un modèle de départ est proposé dans le modèle CSV pour prélèvements SEPA.

Règle pratique : une erreur dans la somme de contrôle ou le nombre d’opérations fait rejeter toute la remise, pas seulement la ligne fautive. Ne calculez jamais ces totaux à la main.

Pour le détail des blocs et des balises, le guide sur le format de fichier de prélèvement SEPA sert de référence.

Valider le XML après la conversion

Un XML bien formé (balises ouvertes et fermées correctement) n’est pas forcément valide. La validité se vérifie à deux niveaux.

Le schéma. Un fichier XML Schema (XSD) décrit les éléments autorisés, leur ordre, leur type et leur nombre. La plupart des langages et des éditeurs XML savent valider un fichier contre son XSD. C’est un contrôle mécanique indispensable.

Les règles métier. Le schéma n’attrape pas tout. Un IBAN de 27 caractères bien placé peut avoir une clé de contrôle fausse. Une date d’échéance peut tomber un jour de fermeture du système TARGET. Une RUM peut être dupliquée. Ces contrôles relèvent de la logique métier et doivent être ajoutés en plus. Passez au moins vos IBAN dans un validateur d’IBAN avant de générer le fichier.

Relire le résultat avant l’envoi

Même quand la conversion est automatisée, un contrôle de cohérence rapide évite les mauvaises surprises. Ouvrez le XML dans un navigateur ou un éditeur de texte et vérifiez trois points : le nombre d’éléments correspond au nombre de lignes utiles du CSV, le total des montants correspond à celui du tableur, et les caractères spéciaux sont lisibles. Si votre CSV contenait 148 lignes et 12 430,75 € au total, le XML doit afficher exactement 148 opérations et 12430.75.

Conservez ensuite le CSV source et le XML produit côte à côte, avec la date de conversion. En cas de question du destinataire, vous saurez retrouver la donnée d’origine en quelques secondes. L’article valider un fichier SEPA recense les contrôles à faire avant tout dépôt en banque.

Automatiser la conversion CSV vers XML SEPA

Schéma en sept étapes d’un flux automatisé de conversion de CSV en XML

Quand la conversion revient chaque mois, le coût réel n’est pas l’outil : c’est le temps passé à reprendre les mêmes corrections et le risque d’une remise rejetée la veille d’une échéance. Pour les fichiers génériques, un script bien testé fait l’affaire. Pour les fichiers bancaires, mieux vaut un outil qui connaît déjà le schéma et ses règles.

GenerateSEPA a été conçu pour ce cas précis. Vous chargez votre CSV, votre Excel ou votre JSON sans le retoucher, vous associez une fois les colonnes aux champs SEPA (IBAN, nom, montant, référence, RUM…) et l’outil mémorise ce mapping pour la fois suivante. Les IBAN sont contrôlés, les lots et les totaux calculés, et vous obtenez un pain.001.001.03 ou un pain.008.001.02 prêt à déposer sur l’espace pro de votre banque.

Si le CSV est produit par votre propre logiciel, l’API REST permet de générer le XML directement depuis votre système, sans passage manuel par un fichier. Le choix entre les deux dépend du volume et de la fréquence ; l’article sur le mapping de données aide à structurer ce travail en amont, et celui sur la création d’un fichier de prélèvement depuis Excel montre le parcours pas à pas.

Checklist pour convertir un CSV en XML sans rejet

Étape Ce que vous faites Quand
1. Schéma cible Récupérer le XSD ou la documentation du destinataire Avant tout
2. Nettoyage Séparateur, encodage UTF-8, décimales, dates ISO, lignes parasites À chaque export
3. Mapping Associer chaque colonne à un élément et définir les regroupements Une fois, puis à chaque changement de format
4. Conversion Outil, script ou service selon la fréquence À chaque fichier
5. Validation Contrôle XSD et règles métier (IBAN, dates, doublons) Avant l’envoi
6. Archivage Conserver le CSV source et le XML produit Après l’envoi

Pour une conversion ponctuelle sans contrainte, un script ou un outil en ligne suffit. Pour vos virements et prélèvements, testez la conversion de votre propre CSV pendant l’essai gratuit de 7 jours sur le convertisseur SEPA.


Questions fréquentes

Comment convertir un fichier CSV en XML avec Excel ?
Ouvrez le CSV dans Excel, activez l’onglet Développeur, puis chargez un schéma XSD dans le volet Source XML et associez chaque colonne à un élément. Vous pouvez ensuite exporter le classeur au format XML. Cette méthode fonctionne pour une liste simple, mais pas pour des structures imbriquées sur plusieurs niveaux comme les fichiers SEPA.
Pourquoi les accents sont-ils illisibles après la conversion ?
Le CSV a probablement été enregistré dans l’encodage Windows par défaut alors que le XML est lu en UTF-8. Réenregistrez le fichier au format CSV UTF-8 depuis Excel ou indiquez le bon encodage au convertisseur. Pour les fichiers bancaires SEPA, il est plus sûr de supprimer les accents.
Peut-on convertir un CSV en XML gratuitement ?
Oui, plusieurs outils en ligne et des scripts libres en Python permettent une conversion gratuite. Ils produisent un XML générique, utile pour un test ou un besoin ponctuel. Si le XML doit respecter un schéma imposé, comme un fichier bancaire, il faudra ajouter le mapping, les totaux et la validation.
Quelle différence entre un XML bien formé et un XML valide ?
Un XML bien formé respecte la syntaxe : chaque balise ouverte est fermée et l’imbrication est correcte. Un XML valide respecte en plus un schéma XSD qui fixe les éléments autorisés, leur ordre et leur format. Un destinataire comme une banque exige un fichier valide, pas seulement bien formé.

Articles liés