Qualité et circulation des données
CSV voyage : préserver types, colonnes et références
Un fichier peut s’ouvrir correctement tout en altérant un identifiant, une date ou un montant. L’échange doit préciser la structure attendue et contrôler ce qui a réellement été importé. Le fichier source, le résultat et les rejets sont à conserver avec leur version pour permettre la reprise sans rejouer toutes les lignes.
Décrire le format avant de lire les valeurs
La RFC 4180 décrit un format CSV avec champs séparés par des virgules, guillemets pour certains champs et doublement d’un guillemet interne. Les outils utilisent aussi d’autres conventions. Indiquez séparateur, encodage, présence d’en-tête et règles de retour à la ligne au lieu de supposer qu’un nom de fichier suffit.
Une adresse ou un commentaire peut contenir virgule, guillemet ou saut de ligne. Compter les séparateurs à la main ne remplace pas un lecteur adapté. Vérifiez le nombre et le nom des colonnes, puis utilisez un petit échantillon couvrant accents, texte long et champs vides. Le fichier accepté doit produire la même structure dans l’outil destinataire.
Préserver les identifiants, dates et montants
Traitez un identifiant comme du texte lorsque le format du système le prévoit. Exemple pédagogique : 00127 et 127 peuvent désigner des références différentes ; un tableur peut effacer les zéros initiaux. Le rapprochement doit utiliser la valeur source plutôt qu’un affichage converti. Un numéro long n’est pas forcément un nombre destiné au calcul.
Déclarez devise, unité et séparateur décimal des montants, ainsi que le format des dates et le fuseau des heures lorsque nécessaire. Distinguez valeur absente, zéro et code de statut. Ne laissez pas une détection automatique de type décider qu’une référence de chambre est une date ou qu’une valeur vide signifie stock nul.
Tester le mapping et les lignes rejetées
Associez chaque colonne au champ destinataire avec une règle explicite. Les colonnes facultatives, doublons d’identifiant et valeurs inconnues demandent une décision documentée. Un import partiel doit produire un bilan : lignes lues, acceptées, rejetées et ignorées, avec références retrouvables. Un total général « traité » masque ces différences.
Avant de modifier le catalogue maître, comparez des lignes témoins avant et après import. Vérifiez aussi un fichier contenant un identifiant déjà présent et un champ vide. La mise à jour d’un champ doit suivre la règle prévue ; elle ne doit pas effacer une donnée fiable simplement parce que la colonne source était absente.
Prévoir la lecture du fichier dans un tableur
OWASP décrit le risque de CSV Injection : un tableur peut interpréter une cellule provenant de données non fiables comme une formule. Les guillemets du format CSV ne constituent pas à eux seuls une protection contre cette interprétation. La mesure retenue doit être testée dans les logiciels destinataires du fichier.
Séparez un export destiné à la relecture humaine d’un export destiné à un import automatisé si leurs transformations diffèrent. Préservez les données originales et documentez les protections appliquées à la version de consultation. Une modification silencieuse de toutes les cellules peut empêcher un rapprochement ultérieur ou transformer une référence valide.
Relier le résultat au fichier et à sa version
Le journal conserve source, version de mapping, heure, destination et bilan. Pour reprendre après un rejet, identifiez les lignes déjà appliquées et les lignes à corriger. Une nouvelle tentative sur tout le fichier peut créer des doublons si l’outil ne remplace pas les enregistrements par leur identifiant. La stratégie dépend des garanties réelles de l’importateur.
Utilisez la fiche de contrôle CSV et le registre des échanges CSV. La recette inclut fichier mal encodé, guillemet interne, identifiant avec zéros, date ambiguë et import partiel. L’objectif est de retrouver les valeurs appliquées et les actions restantes, pas seulement d’obtenir une fenêtre sans erreur.
Sources et périmètre des faits documentés
La date de consultation figure avec chaque référence. Les méthodes d’essai et recommandations de ce guide sont éditoriales ; les conditions d’accès et d’usage se vérifient dans la documentation actuelle.
- RFC 4180 : format CSV — Séparateurs, en-tête, champs entre guillemets et échappement des guillemets ; les variantes nécessitent un accord explicite. (consultée le )
- OWASP : CSV Injection — Risque d’interprétation de cellules non fiables par un tableur ; les mesures dépendent du lecteur et de l’usage. (consultée le )
Questions fréquentes
Questions utiles avant de décider
Un CSV lisible dans un tableur est-il prêt à être importé ?
Il faut aussi vérifier la structure, les types et les règles du destinataire. Une ouverture peut convertir silencieusement des références ou des dates.
Les guillemets CSV empêchent-ils une interprétation en formule ?
Ils servent au format des champs. La prévention de l’interprétation en formule est un contrôle distinct, à tester selon le logiciel utilisé.
Faut-il renvoyer tout le fichier après un import partiel ?
Vérifiez d’abord ce qui a déjà été appliqué et le comportement de mise à jour par identifiant. Préparez une reprise limitée aux lignes qui la nécessitent.