Comment obtenir Excel pour importer mon fichier CSV ?
Fichier
J'ai un fichier prétendant être CSV. Il contient 10 champs, tous entourés de guillemets doubles (oui, même les dates et les nombres.) 2 ou 3 de ces champs contiennent des virgules . Mais les données de ces champs sont également entourées de guillemets.
Problème
Lorsque j'essaie d'ouvrir ce fichier, Excel ignore complètement les guillemets et suppose qu'ils font partie des données.
Il divise donc les champs contenant des virgules en plusieurs colonnes.
C'est mauvais, du moins pour moi.
Exemples de données
"20051", "", "30 septembre 2009 02:53:23", "SOMETEXT", "", "5000", "2000000", "2008 - 99999 - -99999, 2008 - unk - unk", "191 - SOMETEXT - SOMETEXT, 192 - SOMETEXT - SOMETEXT, 193 - SOMETEXT - SOMETEXT, 194 - SOMETEXT - SOMETEXT, 195 - SOMETEXT - SOMETEXT, 196 - SOMETEXT - SOMETEXT "," 45 - SOMETEXT - SOMETEXT, 1162 - SOMETEXT - SOMETEXT - SOMETEXT - SOMETEXT, 141 - SOMETEXT - SOMETEXT " "20052", "SOMETEXT", "2009 Sep 08 07:56:50", "SOMETEXT", "", "50000", "5000000", "2007 - 99999 - 99999", "146 - SOMETEXT - SOMETEXT, 145 - SOMETEXT - SOMETEXT, 147 - SOMETEXT - SOMETEXT, 148 - SOMETEXT - SOMETEXT "," 103 - SOMETEXT - SOMETEXT, 1131 - SOMETEXT - SOMETEXT "
Qu'est-ce que j'ai essayé?
J'ai utilisé la fonction d'importation pour spécifier des délimiteurs et autres, mais cela ne semble pas aider.
J'ai essayé de basculer "Délimiteur de texte" d'une citation double vers "{aucun}" et vice-versa. Cela semble affecter uniquement la première colonne. Ce serait raisonnable s'il était possible de cliquer sur les autres colonnes et d'appliquer ce paramètre à chacune. Mais ce n'est pas le cas, et il semble que cela soit destiné à fonctionner sur plusieurs colonnes.
Que puis-je essayer d'autre?
la source
Réponses:
Je viens d'essayer un test rapide qui reproduit votre problème.
J'ai créé un CSV 1 ligne dans Word (qui utilise des guillemets intelligents) comme test.csv "123", "4,5,6" et il s'est ouvert dans Excel comme vous l'avez décrit.
Essayez de remplacer «et» par «
Après avoir joué avec votre échantillon, je remarque qu'Excel n'aime pas les espaces entre les champs
par exemple au lieu de
tu veux
un remplaçant d'expression régulière décent devrait être en mesure de le gérer avec
(caractères de tuyau pour les repères visuels uniquement)
Ou modifiez simplement le code .Net si vous y avez accès ;-)
En outre, comme l'a souligné Arjan , vous devrez peut-être également convertir le fichier UTF-8 en ANSI pour empêcher la cellule A1 de contenir la nomenclature et ses qoutes environnantes.
J'ai rencontré le Catch 22 de CSV encodé ANSI ne gérant pas les caractères internationaux et CSV encodé UTF n'étant pas géré correctement par Excel; et pas trouvé de solution lors de la maintenance du CSV. Si la prise en charge des caractères internationaux est requise, les formats XML (ou XLS natif) semblent la seule solution, au détriment de la simplicité.
la source
Ce problème me tourmente depuis plusieurs années. Je viens de découvrir la solution et elle est évoquée dans les réponses ci-dessus mais pas explicitement expliquée.
C'est l'espace après la virgule!
Cela n’importe pas dans Excel;
Tandis que
Travaux!
la source
Vous pouvez également essayer CSVEd qui est gratuit.
la source
Si vous n'utilisez pas accidentellement des citations intelligentes comme Lumbarius l'a suggéré , et en supposant que vous êtes sous Windows: cela peut être dû à vos paramètres régionaux. Lorsque vous double-cliquez ou utilisez Fichier »Ouvrir, Excel ne vous demande aucun détail, mais utilise simplement ces paramètres.
Pourtant, l'invocation manuelle de la fonction d'importation (comme vous l'avez fait) aurait dû fonctionner, donc je doute que la modification des paramètres régionaux vous aidera ...
la source
Avez-vous vérifié l'encodage des caractères de votre fichier? Essayez de définir le codage des caractères sur UTF-8.
Vous pouvez utiliser notepad2 pour modifier l'encodage des caractères.
la source
Juste pour ajouter aux réponses ici: concentrez-vous sur les ESPACES après les COMMAS dans vos fichiers CSV. Excel ne les aime pas si vous avez cité des champs dans vos données.
J'aime Excel (4 colonnes de données):
Mais n'aime pas (3 colonnes de données):
Il aime (3 colonnes de données):
la source
J'ai rencontré ce problème aujourd'hui et j'ai également trouvé une solution qui fonctionnait pour moi.
Mon environnement / contexte: J'ai une page Web avec des questions (de formulaire) qui contiennent des guillemets doubles et des virgules. Les questions et les réponses sont extraites de la base de données et écrites dans un fichier Excel à des fins de génération de rapports.
J'ai eu le même problème décrit ci-dessus: les questions qui comprenaient à la fois des guillemets doubles et des virgules étaient divisées en plusieurs colonnes dans Excel.
À mes fins, l' utilisation de deux guillemets simples à la place d'un guillemet double a fait l'affaire.
-> sur le site, deux guillemets simples ressemblent à un guillemet double pour les visiteurs du site
-> Dans le fichier Excel, encore une fois, deux guillemets simples ressemblent à un guillemet double pour les utilisateurs qui consultent les données du rapport
Je me rends compte que cette solution ne fonctionnera pas pour tout le monde, mais j'espère qu'elle aidera quelqu'un.
la source
J'ai pu le faire en utilisant:
ce qui donne quatre colonnes:
la source
Une autre façon de procéder:
De cette façon, vous pouvez définir le codage correct comme UTF-8, que de nombreuses versions (toutes?) D'Excel ne peuvent pas gérer correctement sans nomenclature et vous n'avez pas à vous soucier d'une expression régulière qui pourrait remplacer du texte à l'intérieur du champ et vous ne le remarquez pas.
la source