Je génère un fichier CSV (délimité par des virgules plutôt que par des tabulations). Mes utilisateurs ouvriront probablement le fichier CSV dans Excel en double-cliquant dessus. Mes données peuvent contenir des virgules et des marques de discours, je les échappe donc comme suit.
Reference, Title, Description
1, "My little title", "My description, which may contain ""speech marks"" and commas."
2, "My other little title", "My other description, which may also contain ""speech marks"" and commas."
Autant que je sache, cela a toujours été la manière de procéder. Voici mon boggle: lorsque j'ouvre ce fichier dans Excel 2010, mon échappement n'est pas respecté. Les marques de discours apparaissent sur la feuille et la virgule crée de nouvelles colonnes.
la source
Voici les règles si vous pensez que c'est aléatoire. Une fonction d'utilité peut être créée sur la base de ces règles.
Si la valeur contient une virgule, une nouvelle ligne ou des guillemets doubles, la valeur String doit être renvoyée entre guillemets.
Tout caractère de guillemet double dans la valeur doit être échappé par un autre guillemet double.
Si la valeur ne contient pas de virgule, de retour à la ligne ou de guillemet double, la valeur String doit être renvoyée sans modification.
la source
Selon les instructions de Yashu, j'ai écrit la fonction suivante (c'est du code PL / SQL, mais il devrait être facilement adaptable à n'importe quel autre langage).
la source
Les guillemets simples fonctionnent également bien, même sans échapper les guillemets doubles, au moins dans Excel 2016:
Excel mettra cela en 5 colonnes (si vous choisissez le guillemet simple comme "Qualificateur de texte" dans l'assistant "Texte vers colonnes")
la source
Même après des guillemets doubles, j'ai eu ce problème pendant quelques jours.
Remplacement du séparateur de tuyau par une virgule, puis les choses ont bien fonctionné.
la source