Vous êtes sur la page 1sur 2

Exporter à coup sûr du CSV

Dernière mise à jour le 18 novembre 2009 à 13:01 par christelle.b .

Exporter des données au format CSV n'est pas si trivial qu'il n'y paraît.
Dès que vos données contiennent des virgules ou des guillemets, tout semble partir en vrille.
Il y a une astuce.

Voici comment procéder pour exporter à coup sûr vos données en CSV:

 Doubler tout séparateur de chaîne trouvé dans la cellule ( ga"bu"zo ---> ga""bu""zo )
 Quoter systématiquement le contenu de chaque cellule ( toto ----> "toto" )
 Puis ajouter les cellules entre elles en séparant par une virgule. ( "toto","titi","tata" )
 Puis ajouter les lignes entre elles en séparant par \r\n

Et voilà !

Tout sera exporté correctement, même si vos cellules contiennent des virgules, des espaces,
des guillemets ou même des retours à la ligne.

Exemple
Voici un fichier CSV complexe:
"colonne A","colonne B","colonne C"
"Il a dit ""coucou !"" hier.","Hé, Je contiens une virgule !","125"
"Attention:","Je contient
un retour à la ligne.","777"

Ce qui donne dans Excel:


Notes
 Note 1 : CSV signifie Comma-Separated Value. Le séparateur standard est donc la
virgule (comma). Certaines versions d'Excel utilisent le point-virgule (semicolon)
comme séparateur. Il faudra donc renommer le .csv en .txt, puis l'ouvrir avec Excel et
préciser (dans le wizard d'importation) la virgule (comma) comme séparateur.
 Note 2 : Vous ne contrôlez pas la façon dont Excel va interpréter le contenu de chaque
cellule. Par défaut, chaque cellule sera importée avec le type "General". Par exemple,
tout numéro de téléphone comme "+33-123456" sera interprété comme une addition
par Excel (qui calculera -123423). (Oui je sais, il est très con, Excel)
 Note 3 : Selon le paramétrage régional de Windows, le séparateur de nombre sera la
virgule ou le point. C'est à vous de formater les nombres en fonction de la culture de
vos utilisateurs. (Donc: Pensez à prévoir dans les pages web une option pour permettre
à l'utilisateur de choisir le séparateur décimal.)
 Note 4 : Attention au signe égal en début de cellule: Excel essaiera d'interpréter ce qui
suit dans la cellule comme une formule.

Exemple:
"","12"
"","34"
"Total:","=B1+B2"

Comme vous pouvez le voir, le format CSV pose divers problèmes (aucun contrôle sur la
manière dont le contenu des cellules est interprété, aucun formattage (couleurs, format de
nombre, etc..))
On peut palier à ces problèmes avec une autre astuce: Exportez des fichiers html (contenant
des styles CSS spéciaux) et renommez ces fichiers html en .xls:
Excel saura l'ouvrir sans problème, et prendra en compte le format des cellules (type, couleur,
etc.)
Voir (en anglais)

Vous aimerez peut-être aussi