Comment ouvrir des fichiers CSV délimités par des points-virgules dans la version US d'Excel

95

Lorsque je double-clique sur un fichier .csv, celui-ci s’ouvre dans Excel. Les fichiers csv ont des colonnes délimitées par des points-virgules (pas de virgules, mais aussi un format valide).

En utilisant une configuration allemande Windows / Excel, le fichier ouvert est affiché correctement, les colonnes sont séparées où les points-virgules existaient dans le fichier csv.

Mais lorsque je fais la même chose sur une configuration Windows / Excel (US-) anglaise, une seule colonne est importée et affiche l'ensemble des données, y compris les points-virgules de la première colonne.
(Je n'ai pas de configuration anglaise disponible pour les tests, les utilisateurs ont signalé le comportement)

J'ai essayé de changer la valeur du séparateur de liste dans les paramètres régionaux de Windows, mais cela n'a rien changé.

Que puis-je faire pour pouvoir double-cliquer et ouvrir ces fichiers CSV sur une configuration anglaise?

EDIT:
Cela semble être la meilleure solution pour ne pas compter sur les fichiers CSV dans ce cas. J'espérais qu'il existe un formatage pour les fichiers CSV qui permette de les utiliser à l'échelle internationale.
La meilleure solution semble que je passe à la création de fichiers XLS.

Holgerwa
la source
1
Vous pouvez recommander à vos utilisateurs d’utiliser LibreOffice Calc - il gère très bien les CSV avec des séparateurs arbitraires.
naught101

Réponses:

1

Ces fichiers sont distribués? téléchargé? Généré localement?

Je pense que la façon unique de résoudre votre problème sans accès au PC de l'utilisateur et sans qu'il ait à faire quelque chose de différent du "double-clic" sur le fichier est de convertir les fichiers en .xls avant de les distribuer ou de les placer pour les télécharger ou les générer. un fichier .xls (ou un autre format qui fonctionne) au lieu d’un fichier .csv. Vous pouvez le faire avec un script ou manuellement avec un Excel fonctionnel, en fonction du nombre de fichiers et de la manière dont ils sont générés.

laurent
la source
oui, je pense que c'est la meilleure façon de créer directement des fichiers XLS. J'espérais que certains fichiers CSV seront formatés de manière à ce qu'ils puissent être utilisés à l'échelle internationale, mais si ce n'est pas possible, les fichiers XLS fonctionneront n'importe où.
Holgerwa
8
Comment est-ce la bonne réponse, c'est inutile.
Stevie G
Terrible answer - voir l'autre réponse upvoted.
jmc
203

Ajoutez ceci sur la première ligne du fichier CSV:

sep=;

ou

sep=,

Cela remplacera le paramètre système ("caractère séparateur de liste") et Excel ouvrira le fichier correctement.

atx
la source
4
+1 cela a été fait dans Excel 2010 et cela a parfaitement fonctionné.
N Reed
8
Existe-t-il une liste d'autres paramètres de ce type? Indiquer à Excel d'utiliser, comme le séparateur décimal va généralement avec le lui dire d'utiliser; comme séparateur de colonne.
ZweiBlumen
5
Fonctionne parfaitement pour Excel, mais notez que cela peut ne pas être pris en charge par d’autres tableurs ou programmes de données. Il peut ne s'agir que d'un problème mineur, montrant simplement une première ligne supplémentaire avec sep=ou sep=;dans celle-ci, mais certains programmes ou scripts automatisés peuvent ne pas attendre la première ligne supplémentaire, ce qui entraîne l' sep=;interprétation des en- têtes de colonnes ou de la ligne elle-même.
Sygmoral
5
Sois prudent avec ça. Si vous enregistrez dans Excel, cela va: - Supprimer la spécification du séparateur - Sauvegarder avec le séparateur de paramètres régionaux
Bjinse
1
Peut confirmer fwrite($fileHandle, 'sep=,' . "\r\n");complètement résolu le problème avec fputcsvPHP.
h2ooooooo
26

Vous pouvez utiliser l'assistant d'importation de texte. Cela ne fonctionne pas avec un double-clic-ouvert, mais c’est le meilleur choix que je puisse faire, qui ne consiste pas à jouer avec les paramètres de lanugage.

Dans Excel 2003, allez sur Data-> Import External Data-> Import Datadans la barre de menus (vous ne pouvez pas savoir où il se trouve en 2007, je n'ai pas cela sous la main pour le moment). Recherchez et sélectionnez votre fichier CSV.

Quand il s'ouvre, vous obtenez le Text Import Wizard, qui vous permet de spécifier le ou les délimiteurs à utiliser.

DMA57361
la source
Dans Outlook 2007, accédez à l'onglet Données, sélectionnez votre colonne et cliquez sur le bouton Texte en colonnes dans les jeux d'outils de données.
Hondalex
1
Oui, c'est une solution. Malheureusement, les utilisateurs qui doivent consulter les données ne sont pas disposés à le faire. Ils peuvent gérer un "double-clic-ouvert", mais ne pourront rien faire de plus compliqué. Nous avons essayé de les éduquer au moins un peu, mais ils refusent.
Holgerwa
1
@ Holgerwa - est-il possible d'exécuter les fichiers via un processus de conversion avant de les transmettre aux utilisateurs? Ou doivent-ils rester délimités par un point-virgule? D'autres l'ont suggéré, mais il devrait être assez facile d'échanger des points-virgules contre des virgules à l'aide d'une sorte de script (je vous déconseille une simple recherche / remplacement car vous ne souhaitez pas convertir ces guillemets).
DMA57361
6

Voir cet article:
Problème lors de l'ouverture de fichiers CSV avec Excel? Le problème des virgules et des points-virgules dans Excel en raison de paramètres régionaux pour l'Europe

Ce qui offre 3 solutions:

  • Modifiez l'extension de fichier CSV en TXT (lorsque vous ouvrez un fichier TXT avec Excel, l'assistant d'importation de fichier texte démarre et vous permet de choisir le délimiteur).
  • Remplacez tous les “,” par “;” dans vos fichiers CSV
  • Modifier vos paramètres régionaux et linguistiques

Comme vous n’avez modifié que la valeur du séparateur de liste dans les paramètres régionaux de Windows, je remarque que l’article dit de saisir “.” Pour Decimal Symbolet “,” pour List Separator.

Si vous vous sentez à l'aise avec VBA, consultez:

Ouverture d'un fichier CSV délimité par des points-virgules avec VBA dans Excel 2000
Exportation et importation de texte avec Excel

harrymc
la source
Je suis d'accord, toutes les options valables, mais malheureusement, je ne suis pas dans une situation normale avec les utilisateurs de ces fichiers CSV. .TXT-import ne fonctionnera pas (voir mon commentaire sur la réponse du DMA57361), le remplacement des points-virgules par des virgules ne fonctionnera pas en raison de problèmes de séparateur décimal, et la modification des paramètres régionaux ne fonctionnera pas car je n'ai pas accès au Les ordinateurs utilisés. Les utilisateurs ne font que double-cliquer sur les fichiers et s’ils ne répondent pas à leurs attentes, ils se plaindront et refuseront de les aider à résoudre le problème.
Holgerwa
@ Holgerwa: Si vous ne contrôlez pas les ordinateurs des utilisateurs, vous ne pouvez rien faire. Parce que mon autre suggestion serait de changer le gestionnaire avec l’extension .csv pour qu’il soit votre propre programme, qui corrigera (mais intelligemment) les délimiteurs et appellera Excel.
harrymc
@ Holgerwa: S'il vous plaît noter mon édition ci-dessus en ce qui concerne les paramètres régionaux.
harrymc
3

Le meilleur moyen que j'ai essayé est de définir les paramètres régionaux de votre ordinateur comme suit:

  • dans "Standard and Formats", choisissez "English (United States)";
  • dans "Emplacements", choisissez "États-Unis".

Cela fonctionne pour moi, essayez-le.

jaz
la source
En réalité, le problème du PO est le contraire. Devrait être remplacé par une virgule en tant que symbole décimal, puis par un point-virgule comme séparateur de liste.
yosh m
0

S'il n'y a pas d'autres virgules dans le fichier, vous pouvez simplement rechercher / remplacer dans un éditeur de texte au point-virgule pour les transformer en virgules. Traiter comme un fichier csv normal après cela.

DHayes
la source
Ces fichiers CSV doivent fonctionner dans différents pays (paramètres régionaux) et, dans de nombreux paramètres régionaux, la virgule est le séparateur décimal au lieu du point. Un fichier "standard" de valeurs séparées par des virgules ne fonctionnera pas. Je suppose que c'est la raison pour laquelle les points-virgules ont été ajoutés en tant que délimiteur valide pour les fichiers CSV.
Holgerwa