web-dev-qa-db-fra.com

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

Je génère un fichier CSV avec une extension .csv dans lequel chaque donnée d'une ligne est séparée par une virgule:

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

Le fichier est envoyé par courrier électronique 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.

27
Timofey

Il suffit d'utiliser l'onglet au lieu de virgule. Et si cela ne fonctionne pas, donnez à votre fichier délimité par des tabs une extension xls.

9
Joel Coehoorn

si ce n'est que pour obtenir la csv lisible sur chaque système, il existe un truc non documenté: 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 est juste une partie du fichier csv lui-même. Il ne sera pas dans le tableur dans Excel. cela signifie que cela ne sera ni affiché ni écrit, quel que soit le format que vous définissez pour écrire ou exporter.

35
Stephan

Le comportement d'Excel lors de l'ouverture de fichiers CSV dépend fortement de vos paramètres locaux et du list separator utilisé sous Region and language » Formats » Advanced. Par défaut, Excel supposera que chaque fichier 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 se trouvent dans d'autres pays, ils risquent de voir d'autres résultats, à votre avis.

Par exemple, vous voyez ici qu’un Excel allemand utilisera un point-virgule au lieu d’une virgule, comme dans le cas des États-Unis.enter image description here

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

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

    COMMA               SEMICOLON                     TAB 

enter image description hereenter image description hereenter image description here

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

Laissons donc manuellement l’extension des mêmes fichiers CSV en XLS et regardons ce qui se passe maintenant. Tout d’abord, Excel va avertir que l’extension de fichier ne correspond pas au contenu et Excel essaie de deviner le contenu.

    COMMA        SEMICOLON                   TAB 

enter image description hereenter image description hereenter image description here

Conclusion: TAB + renommage + ignorer avertissement = Win sur chaque système?
Peut-être, mais je n'en serais pas si sûr pour les clients hors de votre pays.

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

35
nixda

Vous pouvez remplacer ".csv" par ".txt", démarrez Excel et ouvrez ce fichier .txt. Ensuite, Excel vous montrera un assistant où vous pourrez spécifier d’utiliser "," en tant que séparateur. Lorsque vous enregistrez à nouveau ce fichier au format .csv, Excel l'ouvrira comme vous le souhaitez.

0
daviii

À court terme, si vous devez uniquement ouvrir un fichier CSV qui vous a été envoyé depuis un autre pays -

Ouvrez le fichier dans WordPad et utilisez Rechercher et remplacer pour modifier chaque séparateur utilisé par le pays émetteur (par exemple;;) et le remplacer par une virgule. (par exemple ,).

Il suffit de vérifier que le pays émetteur n'utilise pas une virgule à la place d'un autre symbole (par exemple, en Espagne, on utilise une virgule où nous utilisons une décimale. Vous devez donc rechercher et remplacer la virgule par une virgule, puis rechercher et remplacer l'autre avec la virgule).

Ce n’est pas une solution à long terme mais suffisante pour rendre le fichier lui-même lisible si vous êtes pressé et que vous ne pouvez pas accéder au panneau de configuration au travail.

0
Steve Dexter

Une autre solution que j'ai utilisée dans cette situation consistait à générer un fichier HTML de base au lieu de CSV. Excel peut ouvrir ceci sans erreur. Il peut également lire au moins une partie de la mise en forme dans le fichier.

0
rawtext

Je suis venu sur le même problème. J'avais un fichier CSV qu'Excel analysait à tort et qui nécessitait l'Assistant d'importation.

Une solution simple consistait à renommer CSV en TXT et le Wizard aidait à reconnaître correctement la structure de la colonne.

0
Jan Bares

C'est la réponse la plus stupide jamais, mais cela a fonctionné. J'utilise des fichiers CSV quotidiennement. Je les crée tout le temps et affiche avec Excel. Aujourd'hui, après 12 ans passés à ne jamais voir ce problème, cela m'est arrivé. Il ne serait pas ouvrir un fichier CSV et formater les colonnes. Même certains fichiers csv que j'ai créés la nuit dernière avec Excel ouvriraient 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 le fichier csv à nouveau.

facepalm

0
Ricky