152 votes

Importation d'un fichier CSV avec des sauts de ligne dans Excel 2007

Je travaille sur une fonctionnalité permettant d'exporter les résultats de recherche vers un fichier CSV à ouvrir dans Excel. L'un des champs est un champ de texte libre, qui peut contenir des sauts de ligne, des virgules, des citations, etc. Pour éviter cela, j'ai placé le champ entre guillemets (").

Toutefois, lorsque j'importe les données dans Excel 2007, que je définis le délimiteur approprié et que je fixe le qualificateur de texte à un guillemet double, les sauts de ligne créent toujours de nouveaux enregistrements à ces endroits, alors que je m'attendrais à voir l'intégralité du champ de texte dans une seule cellule.

J'ai également essayé de remplacer CR/LF ( \r\n ) avec seulement CR ( \r ), et encore une fois avec seulement LF ( \n ), mais sans succès.

Quelqu'un d'autre a-t-il rencontré ce comportement et, si oui, comment l'a-t-il résolu ?

TIA,
-J

EDIT :
Voici un fichier rapide que j'ai écrit à la main pour reproduire le problème.

ID, nom, description
"12345", "Smith, Joe", "Hey.
Je m'appelle Joe."

Lorsque j'importe ce fichier dans Excel 2007, je me retrouve avec une ligne d'en-tête et deux enregistrements. Notez que la virgule dans "Smith, Joe" est traitée correctement. Ce sont les sauts de ligne qui posent problème.

3voto

Samuli Asmala Points 312

Les CSV multilignes peuvent être importés facilement dans les versions d'Excel avec Power Query en suivant les étapes suivantes (testé dans Excel 365 version 2207) :

  1. Aller à l'onglet Données
  2. Cliquez sur "A partir d'un texte/CSV" sur le ruban
  3. Sélectionnez le fichier et cliquez sur Importer
  4. Cliquez sur "Transformer les données" pour ouvrir l'éditeur Power Query.
  5. Cliquez sur "Paramètres de la source de données" sur le ruban de l'éditeur Power Query.
  6. Cliquez sur "Modifier la source"
  7. Sélectionnez "Ignorer les sauts de ligne" dans la liste déroulante "Sauts de ligne".
  8. Cliquez sur OK -> Fermer -> Fermer et charger

2voto

Aaron Dake Points 31

Coller dans Notepad++, sélectionner Encodage > Encoder en ANSI, copier à nouveau le tout et coller dans Excel :)

2voto

pingouinshark Points 29

Mon expérience avec Excel 2010 sur WinXP avec des paramètres régionaux français

  • le séparateur de votre csv importé doit correspondre au séparateur de liste de vos paramètres régionaux ( ; dans mon cas)
  • vous devez double-cliquer sur le fichier à partir de l'explorateur. ne l'ouvrez pas à partir d'Excel

2voto

Dibs Points 127

J'ai eu un problème similaire. J'avais des données twitter dans MySQL. Les données avaient Line feed( LF ou \n ) dans les données. J'avais besoin d'exporter les données MySQL vers Excel. Le LF perturbait mon importation de fichiers csv. J'ai donc fait ce qui suit

1. From MySQL exported to CSV with Record separator as CRLF
2. Opened the data in notepad++ 
3. Replaced CRLF (\r\n) with some string I am not expecting in the Data. I used ###~###! as replacement of CRLF
4. Replaced LF (\n) with Space
5. Replaced ###~###! with \r\n, so my record separator are back.
6. Saved and then imported into Excel

REMARQUE - Lorsque vous remplacez CRLF ou LF, n'oubliez pas de vérifier la présence d'excroissances ( \n , \r , \t... Case à cocher (voir en bas à gauche de la boîte de dialogue)

2voto

Tim Points 11430

Sur MacOS, essayez d'utiliser Numbers

Si vous avez accès à Mac OS, j'ai constaté que le tableur d'Apple Chiffres fait un bon travail de décodage d'un fichier CSV complexe de plusieurs lignes qu'Excel ne pouvait pas traiter. Il suffit d'ouvrir le fichier .csv avec Numbers, puis exporter vers Excel.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X