Une IA fournit un CSV : vérifier le fichier avant le tableur
Des colonnes bien alignées dans une réponse ne garantissent pas un fichier exploitable. Vérifiez le format, les identifiants, les valeurs manquantes et les contenus interprétables avant de reprendre un CSV généré avec une IA.
Pour : Équipes administratives et responsables de projets reprenant des données structurées.
En quelques mots
Conservez le fichier source et définissez le format attendu avant de l’importer : encodage, séparateur, en-têtes, types et nombre d’enregistrements. Lisez ensuite le CSV comme du texte, puis vérifiez sa structure avec un lecteur adapté. Comparez les valeurs à la référence et distinguez une case vide d’un champ absent. Examinez les contenus pouvant être interprétés par le logiciel destinataire. Une lecture syntaxique réussie ne prouve ni l’exactitude métier ni la sécurité de tous les usages.
- Le contrat de données doit préciser ce que signifie chaque colonne.
- Une valeur vide et une colonne manquante exigent des traitements différents.
- Le test du fichier et le test d’import dans le logiciel destinataire sont deux contrôles distincts.

Définir ce que le fichier doit transporter
Je préfère demander un petit fichier contrôlable plutôt qu’un export impressionnant dont personne ne sait expliquer les colonnes. Avant de solliciter une IA, écrivez les identifiants attendus, les champs obligatoires, les unités et la convention des valeurs absentes. Vous pourrez alors vérifier autre chose que l’apparence du tableau.
La RFC 4180 décrit notamment la cohérence du nombre de champs et l’emploi de guillemets autour de certains contenus. Elle est informative et porte sur une convention à virgules. [1] Un fichier à points-virgules n’est donc pas automatiquement inutilisable : il doit correspondre au format annoncé à son destinataire.
Commencer par une lecture de texte, sans import automatique
Gardez l’original, puis examinez une copie dans un éditeur de texte. Vérifiez les accents, les séparateurs et les premières lignes. Si une seule colonne apparaît dans l’aperçu d’import, ne concluez pas immédiatement que les données sont perdues : le séparateur sélectionné peut différer de celui du fichier.
Dans notre exercice, le contrat prévoit trois colonnes à virgules, en UTF-8 : ref_id, atelier, heures_prevues. L’identifiant R01 est un texte ; les heures sont des nombres décimaux avec un point, ou un vide qui signifie « non renseigné ». Ce sont des conventions de ce jeu fictif, pas des réglages universels de tableur.
Vérifier les relations entre structure et sens
| Contrôle | Question utile | Ce qu’un affichage propre peut masquer |
|---|---|---|
| Structure | Chaque enregistrement a-t-il les trois champs attendus ? | Une dernière colonne absente sur une ligne |
| Identité | Les identifiants attendus sont-ils présents une seule fois ? | Un doublon qui remplace une autre ligne |
| Type et unité | La valeur est-elle du bon type et dans la bonne unité ? | Du texte dans une colonne d’heures |
| Absence | Le vide a-t-il une signification déclarée ? | Un inconnu transformé en zéro |
Un champ contenant une virgule peut rester une seule valeur grâce à ses guillemets. Compter les virgules avec une recherche de texte ne remplace donc pas une lecture CSV. La documentation Python distingue les paramètres de lecture et les enregistrements retournés. [2] Le nombre de lignes physiques ne constitue pas non plus un contrôle général du nombre d’enregistrements : certains champs peuvent contenir des retours à la ligne.
Exemple fictif : zéro, inconnu et champ absent
Notre référence contient R01, Érable, 2.5 ; R02, « Lagon, Est », 0 ; R03, Cèdre, un champ vide. Le zéro de R02 signifie explicitement aucune heure prévue. Pour R03, la valeur n’est pas renseignée. Une variante retire le dernier champ de R02 : elle ne porte plus le même schéma, même si un lecteur tolérant retourne deux valeurs sans erreur.
La ressource avec les trois fichiers et le corrigé permet de comparer ces cas. Les fichiers sont construits pour cet exercice ; ils ne proviennent pas d’un modèle exécuté. Les essais annoncés portent sur les contrôles déterministes effectivement consignés, pas sur la performance d’une IA.
Le logiciel peut interpréter autre chose que du texte
OWASP décrit le risque de contenus CSV traités comme des formules dans un tableur. [3] Des guillemets utilisés pour la structure ne constituent pas une garantie générale contre cette interprétation. N’ouvrez pas un export inconnu en supposant que son extension suffit à le rendre inerte.
Nos pièces d’exercice ne comportent aucune formule active. Pour un export réel, examinez les contenus, le logiciel et le circuit d’utilisation avec les compétences adaptées ; ne généralisez pas une technique d’échappement à tous les tableurs et à tous les traitements. Ce guide n’est pas un audit de sécurité.
Terminer par une décision limitée au contrôle réalisé
Écrivez par exemple : « Trois identifiants et trois colonnes comparés à la référence ; UTF-8 et virgule explicitement choisis ; le vide de R03 reste inconnu. Import dans notre logiciel encore à vérifier. » Cette trace est plus utile qu’un vague « CSV validé ».
L’ouverture dans le logiciel destinataire doit ensuite vérifier la conservation des identifiants, des accents, des nombres et des vides, avec sa version et ses réglages. Ici, aucun essai Excel ou LibreOffice n’est revendiqué. Pour les données issues d’un PDF, retrouvez aussi la méthode de contrôle des tableaux.
La fiche à emporter.
Retrouvez les 8 questions de travail dans une version à imprimer ou télécharger, sans inscription.
Ouvrir la fiche pratiqueTélécharger en textePortée de cet article
Méthode originale avec fichiers administratifs fictifs. Aucun modèle exécuté, aucune donnée personnelle, aucune formule active. Tests de texte et de lecture CSV explicitement bornés ; aucune compatibilité universelle ni validation de sécurité ou de décision sensible.
Sources & repères
- IETF : RFC 4180, Common Format and MIME Type for CSV Files
Document informatif d’octobre 2005, consulté le 27 octobre 2026. Section 2, points 3 à 7 : largeur des enregistrements, virgules et guillemets. Décrit une convention à virgules, pas une norme universelle de compatibilité avec tous les tableurs. Nos fichiers utilisent la convention explicitement déclarée dans l’exercice.
- Python : module csv, paramètres de format et lecture
Documentation courante consultée le 27 octobre 2026. Parties Dialects and formatting parameters, Reader objects et Examples : delimiter, strict, newline et encodage. Un lecteur syntaxique ne valide ni la signification des valeurs ni le nombre de champs attendu par notre application. Les essais locaux sont consignés avec la version effective de Python ; aucun test Excel ou LibreOffice n’est revendiqué.
- OWASP : CSV Injection
Page consultée le 27 octobre 2026. Description du risque de cellules interprétées comme formules dans un tableur et avertissement sur l’absence de protection universelle pour tous les consommateurs. Aucune charge active ni recette de neutralisation prétendument universelle n’est fournie ici.
Selon votre situation
Mettre votre projet IA au travail.
Choisir un usage, cadrer un essai ou organiser un déploiement : découvrez comment nous pouvons travailler à partir de vos contraintes.