Comment forcer Excel à ouvrir des fichiers CSV avec des données organisées en colonnes

32

Je génère un fichier CSV avec une extension .csv dans laquelle chaque élément de données sur une ligne est séparé par une virgule:

1,2,3,4
1,2,3,4

Le fichier est envoyé par e-mail et je veux que lorsqu'un client l'ouvre, il voit les données organisées en colonnes.

Une telle chose est-elle possible?

PS: je peux changer librement le délimètre.

Timofey
la source
1
En ce qui me concerne, vous ne pouvez rien faire sauf importer les données dans Excel, car Excel ne peut faire aucune hypothèse sur la structure des données elles-mêmes (par exemple le séparateur utilisé, le format des décimales ou le format général de données).
slhck
@slhck s'il vous plaît regardez la réponse
Timofey
Oh, je ne savais pas qu'Excel était capable de faire ça. Joli.
slhck
1
En double-cliquant simplement sur le fichier CSV, Excel sera ouvert et le fichier s'affichera correctement. Ai-je raison?
wilson
@wilson: Excel doit être associé pour ouvrir les fichiers .csv puis en double-cliquant sur un fichier .csv, Excel sera lancé
Timofey

Réponses:

10

Utilisez tab au lieu de virgule. Et si cela ne fonctionne pas, donnez à votre fichier délimité par des tabulations une extension xls.

Joel Coehoorn
la source
merci pour la solution, j'ai quitté le .csv comme extension de fichier
Timofey
ne fonctionne pas pour excel 14.7.1 sur le mac (2017)
masukomi
3
le "PS: je peux changer librement le délimètre." rend cette réponse moins valable
Paul Fijma
Cela ne répondra pas à la façon de charger un fichier CSV, car C signifie virgule.
JBernardo
@JBernardo Il l'a fait, une fois, mais aujourd'hui, vous trouverez des fichiers avec des extensions csv dans la nature avec toutes sortes de délimiteurs: tab, pipe, virgule, tiret, @, \ 0, etc. Bon ou mauvais, ils sont là , et la partie de la question qui dit "Je peux modifier les délimiteurs" rend cette réponse valide.
Joel Coehoorn
43

si c'est uniquement pour obtenir la csv lisibilité sur chaque système, il y a une astuce non documentée: dans la première ligne, écrivez SEP=;. Cette ligne indique à EXCEL quel caractère utiliser comme séparateur (en fait, vous pouvez utiliser n'importe quel caractère (unique) ( ;,|@#'...))

REMARQUE: cette ligne n'est qu'une partie du csvfichier lui-même. Il ne fera pas partie de la feuille de calcul dans EXCEL. cela signifie, il ne sera pas affiché et il ne sera pas écrit, quel que soit le format que vous définissez pour écrire ou exporter.

Stephan
la source
Ce fut un épargnant de vie! A très bien fonctionné ici!
Etienne Dupuis
meilleure solution à
mon humble avis
39

Le comportement d'Excel lors de l'ouverture de fichiers CSV dépend fortement de vos paramètres locaux et de ceux utilisés list separatorsous Region and language » Formats » Advanced. Par défaut, Excel supposera que chaque CSV a été enregistré avec ce séparateur. Ce qui est vrai tant que le CSV ne vient pas d'un autre pays!

Si vos clients sont dans d'autres pays, ils peuvent voir d'autres résultats, alors vous pensez.

Par exemple, ici, vous voyez qu'un Excel allemand utilisera un point-virgule au lieu d'une virgule comme aux États-Unis. entrez la description de l'image ici

Pour vous embrouiller encore plus, ce paramètre interfère avec le symbole décimal qui peut être configuré séparément sous Excel Options » Advanced » Use system separatorsou via les paramètres régionaux comme indiqué ci-dessus. Excel ne peut pas utiliser le même symbole que l'onglet décimal et le séparateur de liste. Il utilisera automatiquement une virgule ou un point-virgule comme séparateur de sauvegarde. Lire la suite

Je prendrai votre exemple pour créer 3 fichiers. Chacun avec un séparateur différent et ouvrez-le avec Excel.

    COMMA               SEMICOLON                     TAB 

entrez la description de l'image icientrez la description de l'image icientrez la description de l'image ici

Pas la même chose que votre Excel? J'ai pensé ainsi.

Permet donc de changer manuellement l'extension des mêmes fichiers CSV en XLS et de voir ce qui se passe maintenant. Tout d'abord, Excel affichera un avertissement indiquant que l'extension de fichier ne correspond pas au contenu et Excel essaie de deviner ce qu'il contient.

    COMMA        SEMICOLON                   TAB 

entrez la description de l'image icientrez la description de l'image icientrez la description de l'image ici

Conclusion: TAB + renommer + ignorer l'avertissement = gagner sur chaque système?
Peut-être, mais je ne serais pas si sûr pour les clients en dehors de votre propre pays.

La meilleure méthode consiste à demander à vos clients d'ouvrir d'abord un fichier Excel vierge, puis de Data » Get data from textsélectionner manuellement une virgule comme séparateur

nixda
la source
2
Cette réponse est excellente, mais je trouve cela pathétique de Microsoft. Vous ouvrez un csv dans Numbers et il s'ouvre correctement. Vous l'ouvrez dans des feuilles Google et il s'ouvre correctement. Ensuite, vous l'ouvrez dans Excel qui est le seul pour lequel vous payez et ... rien. Et ceux d'entre nous qui n'ont jamais défini de séparateur de liste? Maintenant, je dois perdre du temps à essayer de le faire fonctionner car les "virgules" ne veulent rien dire dans ce "csv". Très frustrant.
Touchez le
> Cette solution fonctionne pour moi (Excel 2013). J'ajuste mon format régional: je mets un point (.) Comme "séparateur décimal", une virgule (,) comme "mille séparateur" et une virgule (,) comme "séparateur de liste" - cesargastonec 13 juillet 15 à 16: 05
Alex78191
Ou vous pouvez changer le séparateur décimal dans les options Excel superuser.com/a/1470373
Alex78191
1

Vous pouvez remplacer ".csv" par ".txt", démarrer Excel et ouvrir ce fichier .txt. Ensuite, Excel vous montrera un assistant où vous pouvez spécifier d'utiliser "," comme séparateur. Lorsque vous enregistrez à nouveau ce fichier au format .csv, la prochaine fois qu'Excel l'ouvrira comme vous en avez besoin.

daviii
la source
0

Une autre solution que j'ai utilisée dans cette situation était de produire un fichier HTML de base, au lieu de CSV. Excel peut l'ouvrir sans erreur. Il peut également lire au moins une partie de la mise en forme du fichier.

texte brut
la source
0

C'est la réponse la plus stupide de tous les temps, mais cela a fonctionné. J'utilise des fichiers CSV quotidiennement. Je les crée tout le temps et les visualise avec Excel. Aujourd'hui, après 12 ans sans jamais voir ce problème, il m'est arrivé. Il n'ouvrirait pas un fichier csv et ne formaterait pas les colonnes. Même certains fichiers csv que j'ai créés la nuit dernière avec Excel s'ouvriraient dans une colonne par ligne.

Solution: vérifiez le gestionnaire de tâches pour toutes les instances ouvertes d'Excel.exe. Tuez toutes les instances et essayez d'ouvrir à nouveau le fichier csv.

facepalm

Ricky
la source
0

À court terme si vous avez seulement besoin d'ouvrir un fichier CSV qui vous a été envoyé depuis un autre pays -

Ouvrez le fichier dans Wordpad et utilisez la fonction de recherche et de remplacement pour modifier chaque séparateur utilisé par le pays émetteur (par exemple;;) et remplacez-le par une virgule. (par exemple ,).

Vérifiez simplement que le pays émetteur n'utilise pas de virgule à la place d'un autre symbole (par exemple, en Espagne, il utilise une virgule où nous utilisons une décimale, vous devez donc rechercher et remplacer la virgule par une décimale, puis rechercher et remplacer l'autre symbole. avec la virgule).

Pas une solution à long terme mais assez bonne pour rendre le fichier lui-même lisible si vous êtes pressé et ne pouvez pas accéder au panneau de configuration au travail.

Steve Dexter
la source
0

Je suis tombé sur le même problème. J'avais un fichier CSV qu'Excel analysait incorrectement et j'avais besoin de l'assistant d'importation.

Le correctif simple consistait à renommer CSV en TXT et l'assistant est venu aider à reconnaître correctement la structure des colonnes.

Jan Bares
la source
0

Une réponse à ce sujet - en particulier pour les problèmes MacOS / OSX avec Excel reconnaissant les virgules:
dans Excel 2019 n'ouvrant pas correctement CSV - ne pas analyser les colonnes: /superuser//a/1506042/1116939

Yaroslav Nikolaev
la source