58 votes

Comment forcer Excel à ouvrir des fichiers CSV dont les données sont disposé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 voie les données disposées en colonnes.

Une telle chose est-elle possible ?

PS : Je peux librement changer le délimiteur.

84voto

rgenito Points 101

Malheureusement, Microsoft a décidé d'utiliser des séparateurs différents dans les différentes localisations de l'article. CSV (qui signifie C omma S eparé V ales). C'est particulièrement ennuyeux lorsque l'on travaille sur une base internationale.

Si c'est seulement pour obtenir le csv lisible dans chaque système, il existe une astuce non documentée : dans la première ligne, écrivez SEP=; . Cette ligne indique à EXCEL d'utiliser ; comme séparateur (en fait, vous pouvez utiliser n'importe quel caractère (simple) ( ;,|@#' ...))

REMARQUE : cette ligne fait partie de la csv lui-même. Il no devient une partie de la feuille de calcul dans EXCEL. Cela signifie qu'il ne sera pas affiché et qu'il ne sera pas écrit, quel que soit le format que vous définissez pour écrire ou exporter.

REMARQUE : ce programme est spécifique à Microsoft EXCEL. D'autres tableurs peuvent ne pas le comprendre.

56voto

Janis Veinbergs Points 4959

Le comportement d'Excel lors de l'ouverture de fichiers CSV dépend fortement de vos paramètres locaux et de l'application utilisée. list separator sous 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 provient pas d'un autre pays !

Si vos clients se trouvent dans d'autres pays, ils peuvent voir d'autres résultats que ceux que vous pensez.

Par exemple, vous voyez ici qu'un Excel allemand utilisera le point-virgule au lieu de la virgule comme aux États-Unis. enter image description here

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 separators ou via les paramètres régionaux comme indiqué ci-dessus. Excel ne peut pas utiliser le même symbole comme tabulateur décimal et séparateur de liste. Il utilisera automatiquement la virgule ou le point-virgule comme séparateur de secours. Lire la suite

Je vais prendre votre exemple pour créer 3 fichiers. Chacun avec un séparateur différent et l'ouvrir avec Excel.

    COMMA               SEMICOLON                     TAB 

enter image description hereenter image description hereenter image description here

Pas le même que celui de votre Excel ? C'est ce que je pensais.

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

    COMMA        SEMICOLON                   TAB 

enter image description hereenter image description hereenter image description here

Conclusion : TAB + renommer + ignorer l'avertissement = gagner sur tous les systèmes ?
Peut-être, mais je n'en 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 Excel vierge, puis d'aller dans la rubrique Data » Get data from text et sélectionnez manuellement la virgule comme séparateur

17voto

Thomi Points 5434

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

2voto

daviii Points 21

Vous pouvez remplacer " .csv " par " .txt ", lancer Excel et ouvrir ce fichier .txt. Excel vous montrera alors un assistant où vous pourrez spécifier l'utilisation de "," comme séparateur. Lorsque vous enregistrez à nouveau ce fichier en tant que .csv, la prochaine fois, Excel l'ouvrira comme vous le souhaitez.

0voto

rawtext Points 1

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X