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 :

Problème d'exportation en CSV


Sujet :

C#

  1. #1
    Membre habitué Avatar de PatStan17
    Homme Profil pro
    Chef de projet / Développeur
    Inscrit en
    Décembre 2008
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2008
    Messages : 307
    Points : 155
    Points
    155
    Par défaut Problème d'exportation en CSV
    Bonjour,

    Contexte : Visual Studio 2010, ASPNET, C#, Base SQL, FrameWork 3.5

    je génére un fichier CSV à partir d'une DataTable et je l'envois par Email à l'utilisateur qui le demande. L'objectif est qu'il récupére les données avec Excel.

    ça marche bien sauf que dans Excel , toutes les accents sont remplaçés par des caractéres du genre : é


    Avec mes recherches j'ai appris que c'est un problème d'encodage mais je n'ai pas trouvé de solution qui marche ....

    QQN aurait t'il la solution ?


    voici ma fonction :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
     
         public void ExporterUneDataTableEnCsv(DataTable LaTable, string Titre, string Chemin, string Email)
     
            {
                string LaLigne = string.Empty;
                string Route = Chemin + "Export.csv";
     
                StreamWriter SW = new StreamWriter(@Route);
     
                LaLigne = Titre;
                SW.WriteLine(LaLigne, System.Text.Encoding.Default);
     
                LaLigne = "Fichier généré via le site intranet de l'ATASH le : " + DateTime.Now.ToString();
                SW.WriteLine(LaLigne);
     
                LaLigne = " ";
                SW.WriteLine(LaLigne);
                LaLigne = string.Empty;
     
                //ENTETES DE COLONNES
                foreach (DataColumn Col in LaTable.Columns)
                {
                    LaLigne = LaLigne + Col.Caption.ToString() + ";";
                }
     
     
                SW.WriteLine(LaLigne);
                LaLigne = string.Empty;
     
                //GENERATION DES LIGNES DE DONNEES
                foreach (DataRow Lgn in LaTable.Rows)
                {
     
                    foreach (DataColumn Col in LaTable.Columns) 
                    {
                        LaLigne = LaLigne + Lgn[Col.ColumnName].ToString() + ";";
                    }
                    SW.WriteLine(LaLigne);
                    LaLigne = string.Empty;
                }
     
     
                SW.Close();
                SW.Dispose();
     
                //ENVOIS FICHIER EN PIECE JOINTE A L'UTILISATEUR EN COURS
                Emails Courrier = new Emails();
     
                //string Sujet = DateTime.Now + " - Export données intranet";
                string Sujet = DateTime.Now + " - " + Titre;
                string Message = "Email généré à votre demande par l'Intranet ATASH</BR>Voir le fichier CSV en pièce jointe";
                Courrier.EnvoisMail(Email, Sujet, Message, Route);
     
                Courrier = null;
     
            }
        }
    Merci d'avance pour vos réponses ...

    Patrick
    Yakatépé

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 766
    Points
    766
    Par défaut
    Encode ton fichier de sortie avec le code page 1552. Mon bout de code est au bureau, je le poste plus tard
    Les fautes d'orthographes sus-citées sont déposées auprès de leurs propriétaires respectifs. Aucune responsabilité n'est engagée sur la lisibilité du message ou les éventuels dommages qu'il peut engendrer.

  3. #3
    Membre habitué Avatar de PatStan17
    Homme Profil pro
    Chef de projet / Développeur
    Inscrit en
    Décembre 2008
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2008
    Messages : 307
    Points : 155
    Points
    155
    Par défaut Merci
    OK ....je teste demain ...

    Merci
    Yakatépé

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 766
    Points
    766
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using (StreamWriter writer = new StreamWriter(@"C:\Toto.csv", false, Encoding.GetEncoding(1252)))
    De plus, tu n'es pas obligé de mettre ta ligne dans une variable, de la concaténer et ensuite faire un WriteLine. Tu peux écrire au fur et à mesure dans le fichier avec la méthode Write, et pour changer de ligne un petit appel à WriteLine() sans argument.
    Les fautes d'orthographes sus-citées sont déposées auprès de leurs propriétaires respectifs. Aucune responsabilité n'est engagée sur la lisibilité du message ou les éventuels dommages qu'il peut engendrer.

  5. #5
    Membre habitué Avatar de PatStan17
    Homme Profil pro
    Chef de projet / Développeur
    Inscrit en
    Décembre 2008
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2008
    Messages : 307
    Points : 155
    Points
    155
    Par défaut Yes
    Ca marche ....

    Merci beaucoup pour ton aide ...


    Patrick JEAN
    Yakatépé

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Points : 23
    Points
    23
    Par défaut
    bonjour, merci à vous j'étais dans la même situation ^^

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

Discussions similaires

  1. Problème guillemet export csv
    Par oui monsieur dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/07/2013, 14h28
  2. [2008] Problème d'export vers un fichier .csv
    Par Aeltith dans le forum SSIS
    Réponses: 3
    Dernier message: 09/03/2011, 11h20
  3. Problème export en CSV
    Par byters dans le forum Excel
    Réponses: 2
    Dernier message: 11/06/2008, 18h41
  4. [ODBC] problème d'export du contenu de <textarea> vers un fichier csv
    Par maraly dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 27/04/2007, 09h14
  5. [phpMyAdmin] Problèmes d'exportation de tables en CSV
    Par seb92500 dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 31/10/2006, 10h53

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