IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

passage a la ligne dans une cellule (fichier csv) [Débutant]


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 2
    Points
    2
    Par défaut passage a la ligne dans une cellule (fichier csv)
    Bonjour,

    N'ayant pas trouver de solution a mon problème, je me tourne vers vous.

    J'ai développer une application en C# qui me permet d'extraire un certain nombre de données depuis un service Web. jusque la tout fonctionne à l'exception d'un petit détail.
    En effet, une fois que j'ai généré mon fichier csv, je dispose d'un champ "descriptif" qui contient une chaine de caractères qui se présente comme suit:

    ex: "Ceci est la chaine de caractères,\r\nsans passage à la ligne"

    Je ne vois pas comment faire pour que le passage à la ligne soit effectif.

    J'ai essayé différents morceaux de code pour essayer d'arriver à mes fins:
    Nom : Capture.PNG
Affichages : 1896
Taille : 7,8 Ko

    Serait-il possible que quelqu'un me débloque ?

    Cordialement,
    misterJ973

  2. #2
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Je ne voit pas trop ce que tu veux faire de tes données. En revanche, il faut bien séparer la partie affichage et la partie récupération. Si tu récupères "\r\n", je dirais qu'il serait préférable de le conserver et de le traiter par la suite dans ton affichage pour en faire ce que tu veux.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Bonjour,

    Déjà sache qu'il est préférable d'utiliser Environment.NewLine au lieu de '\r\n' en dur dans le code.
    Après je n'ai pas vraiment compris, ton fichier de base à des sauts de ligne que tu veux supprimer ? car c'est ce que suggère ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                resultat.Replace("\r\n", "<br/>");
    remplace la chaine de caractère "\r\n", par "<br/>"

    Cependant tu dis
    Je ne vois pas comment faire pour que le passage à la ligne soit effectif.
    Je comprends donc que tu veux en faite en sortie avoir les saut de ligne.

    Donc toi tu as =>
    "Ceci est la chaine de caractères,\r\nsans passage à la ligne"
    et tu voudrais =>
    "Ceci est la chaine de caractères,
    sans passage à la ligne"
    c'est bien ça ?
    mais ou ? dans ton csv ? dans une page web ? dans une texteBox winforms ? précise un peu plus ton contexte stp


    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    D'abord, merci pour votre réactivité .

    J@ckHerror c'est effectivement ce que je souhaite obtenir.

    Pour un peu plus de contexte:
    J'extrais des données depuis un Web Service qui se nomme Jira. Il permet aux membres du projets dont je fais parti de suivre les demandes du client.
    J'arrive donc à réaliser un import de données vers mon bureau. Mon fichier .csv est donc généré. Dans l'un des champs de mon csv j'ai une partie qui va contenir une description dans laquelle j'ai effectivement les "\r\n".
    je souhaiterais comme j'ai pu le préciser dans mon premier post que le passage à la ligne soit effectif (qu'il y ai un passage a la ligne dans la cellule contenant la description en question).

    Dans un second temps je réalise un export de données vers une nouvelle instance de Jira (Jira Software). Il se trouve que les descriptions s'en retrouve condensées puisque j'ai quelque chose du type : "Ceci est la chaine de caractères,\r\nsans passage à la ligne".

    J'avais donc une idée qui consistait à effectuer ce passage lors de la génération de mon csv. Autrement dit, faire un traitement sur les "\r\n".

    Je ne sais pas si ça peut aider mais voila ce que j'obtiens comme fichier .csv:
    Nom : Capture1.PNG
Affichages : 2073
Taille : 27,8 Ko
    Je précise quand même que les  ne sont pas la par hasard, ils correspondent au caractère que j'utilise comme séparateur à la place du ";". il s'agit de "¤".

    Voila, j'espère avoir été un peu plus clair.
    Merci de revenir vers moi si des informations sont manquantes.

    Cordialement,
    misterJ973.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    qu'il y ai un passage a la ligne dans la cellule contenant la description en question
    De quelle cellule parle tu ? dans excel ??? ou dans une datagridView ? ou autre ???

    Par contre la remarque de ZenZiTone est complètement valable, je te conseille dans le csv de conserver les \r\n et de ne les prendre en compte qu'au moment de l'affichage.

    Mais c'est d'ailleurs ce que je n'ai toujours pas compris, ou est ce que tu veux que ce saut de ligne soit visible ? si ta réponse est : "Dans le fichier .csv", on peut en débattre mais je pense que c'est une erreur.

    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Hello,

    Pardon de ne pas avoir précisé.je cherche a avoir ce saut de ligne visible dans la cellule qui contient ma description, qui se trouve dans mon .csv.

    Je cherche effectivement à ce que ce saut de ligne soit visible dans mon fichier .csv même si ce n'est pas la meilleure des solutions.

    J'ai bien pris en compte la remarque de ZenZiTone. Cependant, le soucis que cela me pose c'est que lors de l'importation .csv (option proposé par Jira SoftWare) les "\r\n" sont conservés. J'ai donc des descriptions condensées et autant dire que je ne trouve pas ça super .

    Cdlt,
    misterJ973.

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Bonjour,

    Ok comme tu le sens, mais c'est vraiment étrange, au final dans ton .csv tu n'auras pas une ligne par enregistrement, pour moi que tu récupère des \r\n n'est pas si étrange, cela justement te permet d'avoir une ligne par enregistrement/élément. Un .csv n'a pas pour vocation d'être lut par un utilisateur, mais permettre une transmission de données... bref c'est ton choix tu dois avoir tes raisons mais vérifie bien que les traitements qui devront s'appliquer à ton .csv fonctionneront toujours.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       resultat.Replace("\r\n", "<br/>");
    te mettra des "<br\>" à la place des \r\n, c'est ce que tu veux ?

    à tu essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       resultat.Replace("\r\n", System.Environment.NewLine);

    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  8. #8
    Membre actif
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Septembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 176
    Points : 297
    Points
    297
    Par défaut
    Bonjour,

    Si je comprend bien ce que tu veux (pas sur), tu cherche à ce que les sauts de ligne soient effectif lorsque ouvre ton csv dans Excel.
    Alors pour ça, c'est simple, il suffit qu'ils soient effectif dans le csv.

    Prenons un exemple de fichier csv.
    toto1;tata1;titi1
    titi2
    toto2;tata2;"tutu1
    tutu2"
    Sur la première ligne,'titi2' va aller à la ligne, dans la cellule sous 'toto1'.
    Sur la seconde ligne, 'tutu2' va aller à la ligne, dans la même cellule que 'tutu1', ce que tu cherche à faire si je ne m'abuse.

    Donc voilà, tu a 2 opérations à faire pour cela, faire des Environment.NewLine à la place des \r\n quand tu créé ton csv et encadrer ces chaines par des double-quote.

    Bonne continuation.
    L’aléatoire n’existe pas en informatique, c’est juste un moyen de dire que l’on a pas encore compris.

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Je n'avais pas fait le test qui consistait a remplacer les "\r\n" par des System.Environment.NewLine.
    J'ai eu l'occasion de faire un essai et malheureusement pour moi ça n'a pas l'effet désiré.

    Jack, je pense également que l'idéal n'est pas de faire le remplacement des "\r\n" dans mon csv. Ceci dit, je ne sais pas comment faire, lors de l'importation sur Jira SoftWare pour que les "\r\n" correspondent bien à des passages à la ligne au lieu de faire partie de ma chaine de caractère:

    C'est à dire qu'après l'importation j'obtiens un bloc de texte:
    Nom : CaptureDescriptif.PNG
Affichages : 1927
Taille : 13,8 Ko


    Merci Kyroon pour ta réponse. Je pense ne pas avoir été suffisamment clair sur ce que je souhaitais .

    Enfaite, mon csv comporte des entêtes sur la première ligne du genre:

    clé d'identification ; date de création ; date de résolution ; descriptif

    Je vais donc récupérer des informations depuis un Web Service pour générer mon csv. Le soucis que je rencontre c'est que dans chaque ligne de la colonne correspondant au descriptif où il y a un passage a la ligne j'obtiens un "\r\n" (ce qui n'est pas choquant comme me l'a fait remarqué Jack).

    Une fois mon csv généré, je cherche a importé les données dans une nouvelle instance de mon web service. j'ai une option d'importation en utilisant un csv.
    dans la partie qui correspond a la description d'une tâche, je vais donc avoir mon bloc de description comme on peut le voir sur l'image ci-dessus.
    J'ai donc pensé a traité ces "\r\n" lors de la génération de mon csv de façon a voir dans une cellule donnée quelque chose du genre:

    bonjour,
    (mon passage a la ligne)
    texte texte texte texte
    (mon passage a la ligne)
    texte texte texte texte


    Voila, j'espère avoir été un peu plus clair que dans mes précédents messages.

    misterJ973.

  10. #10
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Citation Envoyé par misterJ973 Voir le message
    Une fois mon csv généré, je cherche a importé les données dans une nouvelle instance de mon web service. j'ai une option d'importation en utilisant un csv.
    dans la partie qui correspond a la description d'une tâche, je vais donc avoir mon bloc de description comme on peut le voir sur l'image ci-dessus.
    J'ai donc pensé a traité ces "\r\n" lors de la génération de mon csv de façon a voir dans une cellule donnée quelque chose du genre:

    bonjour,
    (mon passage a la ligne)
    texte texte texte texte
    (mon passage a la ligne)
    texte texte texte texte


    Voila, j'espère avoir été un peu plus clair que dans mes précédents messages.
    Ok, donc si je comprend bien, tu ne cherches pas à lire tes données dans un Excel, mais dans une page Web? Si oui, ce n'est pas à la génération du csv qu'il faut faire le traitement, mais plutôt du côté de ton Web Service, lorsque tu fais l'importation.

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Hello ZenZiTone,

    Dans ce cas je vais me pencher sur les options qui s'offrent à moi par rapport a l'importation. J'ai quand même l'impression d'être limité.

    Merci pour vos réponses.

    misterJ973.

  12. #12
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    J'ai eu l'occasion de faire un essai et malheureusement pour moi ça n'a pas l'effet désiré.
    tu as eu quoi comme effet du coup ?

    J'oublie toujours mais il fait bien faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    resultat = resultat.Replace("\r\n", System.Environment.NewLine);
    et pas seulement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    resultat.Replace("\r\n", System.Environment.NewLine);
    Replace retourne le string modifié.

    Bon après je n'ai pas fait de test, pas eu le temps. Et je te dis ça de tête, je prendrais le temps de faire un petit test chez moi si tu t'en sors pas.

    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  13. #13
    Membre actif
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Septembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 176
    Points : 297
    Points
    297
    Par défaut
    Oui, donc c'est pas pour Excel mais pour Jira.

    Donc ce qu'il te fait c'est savoir comment Jira interprète les saut de ligne lors d'un import csv.
    Heu, regarder leur documentation peut-être ?

    Capturing data that spans multiple lines
    Use double-quote marks (") in your CSV file to capture data that spans multiple lines. For example, upon import, JIRA will treat the following as a valid CSV file with a single record:

    1 Summary, Description, Status
    2 "Login fails", "This is on
    3 a new line", Open
    Donc ce que je viens de dire pour Excel est valable pour Jira apparemment.

    Bonne continuation.
    L’aléatoire n’existe pas en informatique, c’est juste un moyen de dire que l’on a pas encore compris.

  14. #14
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Hello,

    Jack, Lors que j'ai appliqué la ligne de code, j'ai eu un changement de cellule provoqué par le NewLine au lieu d'un saut de ligne dans la même cellule.

    Je vais faire quelques essais en fonction des retours que vous m'avez fait.
    Je reviens vers vous dès que ça sera fait.

    misterJ973.

  15. #15
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Citation Envoyé par misterJ973 Voir le message
    Jack, Lors que j'ai appliqué la ligne de code, j'ai eu un changement de cellule provoqué par le NewLine au lieu d'un saut de ligne dans la même cellule.
    Si tu as effectuer le NewLine dans le fichier csv il est normal que celui-ci effectue un changement de cellule. Le saut à la ligne dans le fichier csv est à interpréter comme une nouvelle ligne. C'est pourquoi tu ne peux pas mettre en forme ton csv pour avoir un affichage tel que tu le souhaites. Si tu souhaites vraiment lire le csv tel quel, le mieux à faire serait de retirer les "\r\n" qui "pollue" la lecture. En revanche il te les faudra si tu souhaites afficher le texte dans un conteneur (une cellule Excel, un page Web, un TextBox Winform, etc...

  16. #16
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    hello,

    C'est noté.
    Bon je n'ai pas résolu mon problème a l'heure actuelle.
    Je continue à chercher.

    Merci du coup de main .

    misterJ973.

  17. #17
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Je reviens vers vous pour dire que mon problème est résolu. j'ai effectivement indiqué les guillemets dans mon code c#.

    j'obtiens finalement bien mes différents paragraphes avec les sauts de lignes une fois mon importation réalisée dans Jira Software.

    Merci du coup de main,
    Il semblerait que je sois passé a coté d'un détail important lorsque j'avais consulté la doc Atlassian concernant le format des csv .

    je place le post en résolu.
    misterJ973

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Passage a la ligne dans une cellule
    Par bercla dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/02/2014, 13h38
  2. OleDbCommand sur un fichier Excel - conserver les retour à la ligne dans une cellule
    Par rohstev dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 29/01/2014, 16h02
  3. [AC-2003] Saut à la ligne dans une cellule d'un fichier Excel
    Par radahm dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/06/2009, 10h22
  4. [CSS] Empecher le retour à la ligne dans une cellule
    Par pekka77 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 26/02/2009, 16h50
  5. [XSLT][>CSV]retour a la ligne dans une cellule d'un fichier csv
    Par ujoodha dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 09/07/2006, 12h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo