Tous les articles

Le tableur est une interface, de gré ou de force

Les données arrivent en tableur. Traiter l'import comme un détail technique garantit une fonctionnalité qui échoue le jour de la mise en production.

·2 min de lecture

Un projet prévoit une saisie propre dans l’application. La réalité arrive sous forme de classeur, avec des colonnes fusionnées, trois onglets et des dates au format texte.

L’import est presque toujours sous-estimé. Il est pourtant la porte d’entrée réelle des données.

Valider en deux temps

Un import qui traite les lignes une par une et s’arrête à la première erreur est le pire des modèles : il laisse la moitié des données en base et l’autre dehors, sans moyen simple de savoir où il s’est arrêté.

Le bon schéma comporte deux passes. La première vérifie tout sans rien écrire et produit un rapport complet. La seconde écrit, en une transaction, seulement si la première est propre — ou sur les seules lignes valides, si l’utilisateur l’a explicitement demandé.

Le rapport est la fonctionnalité

Un rapport utile donne, pour chaque ligne rejetée : son numéro dans le fichier d’origine, la colonne en cause, la valeur trouvée et la valeur attendue.

Le numéro de ligne d’origine est le point critique : la personne corrige dans son tableur, pas dans l’application. Un rapport qui numérote selon l’ordre interne de traitement l’oblige à chercher.

Les pièges qui reviennent

L’encodage. Un fichier exporté depuis un tableur en français arrive fréquemment en Windows-1252 et non en UTF-8. Les accents deviennent illisibles. La détection doit être explicite, et le message clair quand elle échoue.

Les dates. Le même fichier peut contenir des dates réelles et des chaînes de caractères qui y ressemblent, selon la colonne. Attendre un format précis et le dire est plus robuste que tenter de deviner.

Les nombres. La virgule décimale française, le séparateur de milliers, l’espace insécable collée par un copier-coller. Un nettoyage explicite évite des montants divisés par mille.

Les identifiants tronqués. Un code à zéros initiaux, ou un numéro long, est transformé par le tableur avant même l’export. Le seul remède fiable est de traiter ces colonnes comme du texte, et de le dire dans le modèle fourni.

Fournir le modèle

Un fichier d’exemple téléchargeable, avec les bons intitulés de colonnes et deux lignes remplies, supprime la majorité des erreurs avant qu’elles ne se produisent. Il coûte une heure à produire et remplace des pages de documentation que personne ne lit.