3 votes

Ignorer les sauts de ligne dans la valeur CSV

Donc, j'ai un CSV qui contient un nom de fichier et le contenu d'un fichier. Le fichier est plein de sauts de ligne et de toutes sortes d'autres caractères. J'ai besoin que chaque ligne contienne le nom du fichier dans une colonne et le contenu du fichier dans la colonne suivante, puis j'ai besoin d'une nouvelle ligne, jusqu'à la fin du fichier.

Les données ressemblent à ceci :

"filename.txt","salut là
pote
comment vas-tu
faire"
"filename2.txt","et ainsi de suite..."

Selon http://creativyst.com/Doc/Articles/CSV/CSV01.htm#EmbedBRs, mon importateur CSV devrait lire ces valeurs de sauts de ligne comme des valeurs uniques, pas de nouvelles lignes. Cependant, j'ai essayé OO Calc, KSpread, Gnumeric, et même Microsoft Excel 2007 et aucun d'eux ne le lit de cette façon; ils considèrent tous chaque saut de ligne comme une nouvelle ligne.

Quelqu'un sait comment résoudre ce problème? J'ai regardé d'autres questions similaires mais aucune d'entre elles ne semble le dire.

Si cela ne fonctionne pas, je devrai écrire le fichier directement avec un module d'écriture Excel Python ou quelque chose. Quelqu'un sait quoi faire ici?

2voto

Dylan Nicholson Points 148

Le fichier doit avoir une extension .csv. Sinon, cela ne semble pas fonctionner. Problème dans Excel autant que je suis concerné.

1voto

Eric J. Points 73338

Le lecteur CSV LumenWorks gratuit gère les sauts de ligne dans les données si vous définissez un drapeau approprié.

1voto

Excel 2007 les lira correctement, mais vous aurez toujours les sauts de ligne dans la colonne.

Vous devrez les supprimer avant d'importer le fichier.

Si vous créez le fichier vous-même à partir de SQL Server, vous pouvez facilement les supprimer.

REPLACE(REPLACE(Champ, CHAR(13),' '), CHAR(10), ' ') AS ChampCorrigé

1voto

cookiecaper Points 1718

J'ai dû passer à quelque chose qui gère directement le format Excel, je n'ai pas réussi à faire en sorte qu'Excel analyse les sauts de ligne du fichier CSV comme prévu.

Même dans ce cas, cela n'a pas fonctionné car Excel a une limite stricte de caractères par cellule. Le client a décidé de ne pas poursuivre cette voie et a trouvé un processus de soumission alternatif avec le développeur du logiciel pour lequel ils avaient besoin du fichier Excel.

1voto

Alois Mahdal Points 1840

Eh bien, si le fichier d'entrée peut contenir n'importe quoi, autant qu'il puisse contenir des guillemets, des virgules, etc., tout ce qui pourrait casser toute la table.

Je suggère l'une de ces options :

  • utiliser un format différent : XML ou un tableau HTML, par exemple, peut être importé directement dans Excel

  • échapper les sauts de ligne dans les fichiers et les diviser dans Excel, en utilisant une fonction Excel (ou VBasic)

Je crois que l'utilisation de CSV est une option raisonnable uniquement si vous avez des données prévisibles et simples sous une forme simple afin de pouvoir suivre la règle "une ligne = une rangée". (Et ensuite, vous pouvez tout faire avec printf, ce qui est juste cool. :D)

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