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

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

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

Le fichier est envoyé par courrier électronique et je souhaite que, lorsqu'un client l'ouvre, elle voit les données disposées en colonnes.

Une telle chose est-elle possible?

PS: Je peux changer librement le délimiteur.

Utilisez simplement l'onglet au lieu de la virgule. Et si cela ne fonctionne pas, donnez à votre fichier délimité par des onglets une extension xls.

Le comportement d'Excel lors de l'ouverture de fichiers CSV dépend fortement de vos paramètres locaux et du list separator utilisé dans la 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, alors vous pensez.

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

Pour vous confondre 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 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 vais prendre votre exemple pour créer 3 fichiers. Chacun avec un séparateur différent et l'ouvrir 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 le même que votre Excel? J'ai pensé ainsi.

Donc, changeons manuellement l'extension des mêmes fichiers CSV vers XLS et regardons ce qui se passe maintenant. Tout d'abord, Excel lancera un avertissement indiquant que l'extension de fichier ne correspond pas au contenu et Excel essaie de deviner ce qui se trouve à l'intérieur.

  COMMA SEMICOLON TAB 

Entrez la description de l'image iciEntrez la description de l'image iciEntrez la description de l'image ici

Conclusion: TAB + renommage + ignorer avertissement = Gagner sur tous les systèmes?
Peut-être, mais je ne serais pas si sûr pour les clients en dehors de votre propre pays.

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

Si c'est seulement pour obtenir le csv lisible dans tous les systèmes, il y a un tour sans papiers: dans la première ligne, écrire 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 ne fait qu'une partie du fichier csv lui-même. Il ne fera pas partie du spreadsheed dans EXCEL. Cela signifie que cela ne sera pas affiché et qu'il ne sera pas écrit, quel que soit le format que vous définissez pour écrire ou exporter.

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 du formatage dans le fichier.