Génération de CSV, WTF ?

Parfois j’ai l’impression que le plus gros de mon boulot consiste à générer des fichiers CSV… J’ai donc une librairie toute prête, améliorée au fil des projets. Elle fonctionne, elle est testée, éprouvée par les ans, elle ne peut pas bugger, pas possible… Eh ben si, et on en apprend tous les jours.

Ce matin j’ai donc généré un CSV en php, avec une ligne d’entête en majuscules. Tout bêtement, ma première colonne est l’ID. J’ai donc mis ID dans ma cellule A1. Normal.

Mais en fait non.

En ouvrant mon CSV avec LibreOffice pour voir s’il s’était bien généré, rien dedans… Ouvert avec un éditeur de texte, le contenu est bien là, mais avec LibreOffice, rien.

Je teste en remplaçant ID par un lot d’insultes, et ça passe… ID serait-il un mot réservé ? ce serait con… et pourtant… Une recherche rapide me fait tomber sur un commentaire sur PHP.net. Le problème n’est pas nouveau et il concerne apparemment tous les tableurs. Si la cellule A1 contient ID en majuscule, le tableur ne lit pas la ligne. Eh ouais c’est comme ça ma brave dame.

Solution : remplacer ID par id, Id, n’importe quoi d’autre fera l’affaire.

Conclusion : insulter le programme est toujours utile pour pister les bugs.