J'ai une base de données qui suit les ventes de widgets par numéro de série. Les utilisateurs saisissent les données et la quantité d'acheteurs, puis analysent chaque widget dans un programme client personnalisé. Ils finalisent ensuite la commande. Tout cela fonctionne parfaitement.
Certains clients veulent une feuille de calcul compatible avec Excel pour les widgets qu'ils ont achetés. Nous générons cela avec un script PHP qui interroge la base de données et affiche le résultat sous forme de fichier CSV avec le nom du magasin et les données associées. Cela fonctionne parfaitement bien aussi.
Lorsqu'il est ouvert dans un éditeur de texte tel que Notepad ou vi, le fichier se présente comme suit:
"Account Number","Store Name","S1","S2","S3","Widget Type","Date"
"4173","SpeedyCorp","268435459705526269","","268435459705526269","848 Model Widget","2011-01-17"
Comme vous pouvez le constater, les numéros de série sont présents (dans ce cas deux fois, toutes les séries secondaires ne sont pas identiques) et sont de longues chaînes de chiffres. Lorsque ce fichier est ouvert dans Excel, le résultat devient:
Account Number Store Name S1 S2 S3 Widget Type Date
4173 SpeedyCorp 2.68435E+17 2.68435E+17 848 Model Widget 2011-01-17
Comme vous l'avez peut-être observé, les numéros de série sont entourés de guillemets doubles. Excel ne semble pas respecter les qualificateurs de texte dans les fichiers .csv. Lors de l'importation de ces fichiers dans Access, nous n'avons aucune difficulté. Lorsque vous les ouvrez sous forme de texte, aucun problème. Mais Excel, à coup sûr, convertit ces fichiers en déchets inutiles. Essayer d'apprendre aux utilisateurs finaux comment ouvrir un fichier CSV avec une application autre que celle par défaut est en train de devenir fastidieux. Y a-t-il de l'espoir? Y a-t-il un paramètre que je n'ai pas pu trouver? Cela semble être le cas avec Excel 2003, 2007 et 2010.
Excel does not seem to respect text qualifiers in .csv files
- les guillemets doubles ne sont pas des qualificateurs de texte, ils permettent simplement des virgules dans vos données. Si vous n'utilisez pas de virgules dans vos données, ils n'ont alors aucun sens . Toutes les données d'un fichier CSV ne sont pas typées. Excel ne peut donc que deviner que votre grand numéro de série est un nombre . C'est à ce moment-là que vous entrez dans la précision maximale de 15 chiffres d'Excel , ce qui tronque vos chiffres.