web-dev-qa-db-fra.com

Excel enregistre souvent les fichiers .csv au format délimité par des tabulations. Qu'est-il arrivé?

Je ne sais jamais comment cela peut arriver.

Je déteste vraiment vraiment.

C'est parce que mon programme compte sur les fichiers csv en tant que csv.

Et je ne sais jamais, jusqu'à présent, comment mon fichier csv peut devenir un format délimité par des tabulations

Ai-je cliqué sur Enregistrer sous?

Ai-je économiser comme d'habitude?

C'est un fichier csv. Je veux toujours que ce soit csv.

Parfois, j'ouvre le fichier et découvre que la virgule est partie. Je dois faire

Données -> texte en colonne

Pour arranger ça. Et puis enregistrez à nouveau. Si je sauve encore, csv va bien. Mais comment diable est-il devenu délimité par des tabulations? Je n'ai jamais demandé à Excel de l'enregistrer dans un fichier délimité par des tabulations. Comment cela peut-il arriver? L'extension est toujours .csv.

Information additionnelle

  1. Je sauvegarde rarement le fichier. Je sors habituellement d’Excel et il se peut que certaines invites apparaissent. J'ai peut-être sauvé sans savoir.
  2. Si j'essaie d'enregistrer le fichier sous, Excel utilise par défaut le format "txt" même s'il s'agit clairement d'un fichier .csv.
  3. Cependant, si je sauvegarde rapidement, il ne sera pas sauvegardé dans des fichiers .csv. Il va enregistrer dans les fichiers .csv.txt. Donc, avoir des fichiers délimités par des tabulations dans mes fichiers .csv ne semble pas avoir de sens du tout.

enter image description here

Le programme qui utilise le fichier CSV est mon propre programme personnalisé. Je m'arrange maintenant pour qu'il puisse lire à la fois l'onglet et la virgule. Cependant, le programme est très sensible aux erreurs en ce qui concerne son entrée. Cette erreur m'a déjà coûté des centaines de dollars.

9
user4951

Juste pour développer la réponse de Chris76786777 sur ce bogue Excel éventuel, j’ai aussi remarqué si vous ouvrez un fichier CSV encodé avec UTF-8 avec un en-tête de nomenclature dessus (UTF-8-BOM), ajoutez des colonnes et sauvegardez-le simplement. Il sera sauvegardé avec des tabulations au lieu de virgules comme séparateur, mais vous ne verrez pas les résultats (corrompus) jusqu'à ce que vous fermiez le fichier et le rouvriez dans Excel.

Si vous ouvrez un fichier CSV UTF-8 en clair sans nomenclature, la même modification ci-dessus fonctionne parfaitement et vous pouvez le rouvrir normalement dans Excel.

Une façon de contourner ce problème consiste à ouvrir le fichier CSV dans un éditeur de texte robuste tel que Notepad ++ ou Vim, puis à convertir le codage de fichier de la nomenclature UTF-8 en UTF-8 avant de le modifier dans Excel. (Je sais que la nomenclature est parfois nécessaire pour qu'Excel comprenne correctement différentes langues, du moins en fonction de this .) Si vous pouvez supprimer la nomenclature, espérons-le vos résultats seront alors plus prévisibles (au moins jusqu'à ce que Microsoft trouve que ce problème est un peu étrange).

11

Lorsque vous double-cliquez sur le fichier CSV et que celui-ci s'ouvre dans Excel, Excel le traite en fait comme un fichier texte, mais il est converti en colonnes "à la volée". C'est toujours un fichier texte, cependant.

Afin d'ouvrir CSV en tant que CSV dans Excel, puis de l'enregistrer en tant que CSV, vous devez l'importer.

Malheureusement, l'action par défaut consistant à importer un fichier CSV à partir d'un double-clic a disparu avec Office 2003.

Pour vous, vous pouvez soit prendre l'habitude d'importer toujours vos fichiers CSV dans Excel (ce qui présente des avantages si vous avez de grands nombres - 12 chiffres ou plus) ou de passer à d'autres outils - OpenOffice par exemple.

8
AcePL

Je crois que c'est un bug dans Excel. J'ai remarqué que cela se produisait lorsque je sauvegardais un XLSX au format CSV avec l'option CSV UTF-8. Si je sauvegarde avec la version "normale" de CSV, cette conversion de CSV en fichier délimité par des tabulations ne se produit pas Je peux sauvegarder, fermer et rouvrir en double-cliquant et le fichier reste au format CSV.

J'ai rencontré ce problème ces derniers jours et c'est ce que j'ai remarqué.

3
Chris76786777

Ce qui a fonctionné pour moi est similaire à ce qui a été suggéré par Russ :

  • Editez le CSV dans un éditeur de texte et remplacez ; par ,

Définissez également mon programme CSV par défaut sur un éditeur de texte et non sur Excel.

1
CodeMeHappy