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

Windows Forms Discussion :

problème de formatage de fichier CSV


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut problème de formatage de fichier CSV
    J'ai déjà lu divers Posts sur ce sujet, mais aucun ne traite complètement de mon problème qui est double.

    mon appli génère un fichier CSV, comprenant des cellules avec accents.
    1 - Ce fichier doit s'ouvrir dans Excel comme s'il avait été généré par Excel lui même.
    2 - il doit m'afficher les accents.

    J'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    string line = "1;2;3;hé oui";
    StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);
    sw.Write(line);
    sw.Write('\n');
    J'obteins un caratère parasite en début de fichier :
    alors j'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    string line = "1;2;3;hé oui";
    System.IO.BinaryWriter sw = new BinaryWriter(fs,  Encoding.UTF8);
    sw.Write(line);
    sw.Write('\n');
    Résultat : plus de caractère parasite, mais les accents disparaissent :

    Alors j'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    string line = "1;2;3;hé oui";
    System.IO.BinaryWriter sw = new BinaryWriter(fs,  Encoding.UTF8);
    byte[] DefaultLine = Encoding.Default.GetBytes(ligne);						
    Encoding DestEnc = Encoding.UTF8;
    Encoding SrcEnc = Encoding.Default;
    byte [] CSVLine = Encoding.Convert(SrcEnc, DestEnc, DefaultLine);
    sw.Write(line);
    sw.Write('\n');
    plus de caractère parasite en début de fichier, les accents sont remplacés par des caractères ????.

    J'ai donc remplacé par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    string line = "1;2;3;hé oui";
    System.IO.BinaryWriter sw = new BinaryWriter(fs,  Encoding.Unicode);
    byte[] DefaultLine = Encoding.Default.GetBytes(ligne);						
    Encoding DestEnc = Encoding.Unicode;
    Encoding SrcEnc = Encoding.Default;
    byte [] CSVLine = Encoding.Convert(SrcEnc, DestEnc, DefaultLine);
    sw.Write(line);
    sw.Write('\n');
    et là : Raz le bol j'obtiens un message d'erreur de Excel :
    Impossible de reconnaitre le format de fichier !
    si malgrè tout je clique sur OK pour ouvrir le fichier. Il a les accents, mais Tout est collé dans la colonne 1. D'accord on peut passer par "Données\Convertir", mais moi je veux que ce soit automatique, comme pour un fichier généré sur Excel.




    Comment faire pour cela ? Quel format utiliser pour cette P.... d'ouverture automatique de Excel, je ne trouve pas ! Help Please...

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 83
    Points : 107
    Points
    107
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                string line = "éàô;1;2;3;hé oui";
                 StreamWriter sw = new StreamWriter(fs, false, Encoding.Default);
                sw.WriteLine(line);
                ..............................
                sw.Close();
                ..............................

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    salut

    j'ai fait un test en faisant juste cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TextWriter writer = new StreamWriter(@"c:\excel.csv",true,Encoding.Default);
                writer.Write("hé oui;non;tout va bien;être ou ne pas être");
                writer.Flush();
                writer.Close();

    je double clique sur le fichier crée, et il s'ouvre comme tu le voudrais

    The Monz, Toulouse

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    en effet, pourquoi se compliquer la tache.
    le problème c'est que j'aias esayé ça au début, et j'avais un caractère parasite en début de fichier.
    certains de mes utilisateurs qui ouvraient le fichier sous Linux, n'y arrivaient pas à cause de ce P... de caractère.
    Le passage par le BinaryWriter avait corrigé ce problème.

    Mais là j'ai même plus de caractère parasite en début de fichier (controlé avec un éditeur héxa) ??? je comprends pas ce qui s'est passé.

    merci en tout cas...

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    de rien

    tag "Résolu" à mettre , please

    The Monz, Toulouse

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

Discussions similaires

  1. problème d'imporatation de fichier CSV vers une StringGrid
    Par ludojojo dans le forum C++Builder
    Réponses: 5
    Dernier message: 27/06/2008, 12h23
  2. Problème import d'un fichier "csv"
    Par katkiller dans le forum Développement
    Réponses: 0
    Dernier message: 16/05/2008, 09h27
  3. Formatage de fichier csv
    Par tyvix dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 19/09/2007, 10h08
  4. Problème de séparateur dans fichier CSV
    Par mbibim63 dans le forum Excel
    Réponses: 4
    Dernier message: 05/07/2007, 08h29
  5. Problème de lecteure de fichier csv
    Par Mike888 dans le forum Documents
    Réponses: 1
    Dernier message: 22/03/2007, 11h08

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