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

VB.NET Discussion :

exportation csv problème accent


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Par défaut exportation csv problème accent
    bonjour, voilà j'ai trouvé un code permettant à partir d'une requête SQl de remplir un fichier CSV. Cependant, comme toujours, les accents posent problème :
    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
     
    Dim StrSQL As String
            Dim enreg As SqlDataReader
     
            'sauv client
            StrSQL = "SELECT * from matable"
            enreg = reader(StrSQL) 'fct qui renvoi un reader rempli
            If enreg.HasRows Then
                Dim CSVfile As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) & "\Sauvegarde\test_1.csv"
                Dim sw As New StreamWriter(CSVfile, True, New _ System.Text.UTF8Encoding)
                Dim I As Integer
                Dim iCol As Integer
                iCol = enreg.FieldCount
                sw.Write("N°")
                sw.Write(";")
                sw.Write("Nom")
                sw.Write(";")
                sw.Write("Prénom")
                sw.Write(";")
                sw.Write("Adresse")
                sw.Write(";")
                sw.Write("Code Postal")
                sw.Write(";")
                sw.Write("Ville")
                sw.Write(";")
                sw.Write("Teléphone")
                sw.Write(";")
                sw.Write("Fax")
                sw.Write(";")
                sw.Write("E-Mail")
                sw.Write(";")
                sw.Write("Test")
                sw.Write(sw.NewLine)
                Do While enreg.Read()
                    Dim Sep As String = ""
                    For I = 0 To iCol - 1
                        sw.Write(Sep)
                        If Not Convert.IsDBNull(enreg(I)) Then
                            sw.Write(Trim(enreg.GetValue(I).ToString))
                        End If
                        sw.Write("")
                        Sep = ";"
                    Next
                    sw.Write(sw.NewLine)
                Loop
                sw.Close()
                MsgBox("Fichier créé avec succès !!", MsgBoxStyle.Information + vbOKOnly, "Exportation")
            End If
    j'ai essayé de changer : System.Text.UTF8Encoding en System.Text.unicodeencoding
    les accents apparaissent mais le séparateur aussi (plus de champ par cellule). Or avec UTF8, chaque chose est dans sa cellule.
    Pareil avec System.Text.UTF32Encoding
    Et avec System.Text.ascciiencoding, les accents sont remplacés par "?" mais les champs dont dans leurs cellules.

    Quelqu'un pourrait me dire comment règler ce problème ?
    merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 60
    Par défaut
    Salut,

    J'avais eu une problématique de création de fichier CSV et à l'époque j'avais utilisé SimpleCSV

    Voici un exemple de code avec notamment l'encoding et je n'avais pas de soucis avec les accents (Exemple en C# par contre):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    using (SimpleCSVSerializer<CSVFileDemande> serializer = new SimpleCSVSerializer<CSVFileDemande>())
    {
           using (SimpleCSVWriter writer = new SimpleCSVWriter(csvFileName, Encoding.UTF8))
           {
                 writer.HasHeader = true;
                 writer.QuoteAll = true;
                 foreach (FileDemande demande in xmlFile.Demande)
                      serializer.Serialize(writer, new CSVFileDemande(demande));
           }
    }

  3. #3
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Par défaut
    s'agit-il d'une classe présente sous visual studio 2010 ? car je travaille sous VB10

  4. #4
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Essaye avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.Text.Encoding.GetEncoding("iso-8859-1");

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    bonsoir,
    et aussi à essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim sw As New StreamWriter(CSVfile, True, System.Text.Encoding.UTF8)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim sw As New StreamWriter(CSVfile, True, New System.Text.UTF8Encoding(False))

  6. #6
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 37
    Par défaut
    Merci pour vos suggestions mais aucune ne semble fonctionnée. a la place des "é" j'ai "é".
    Je vais voir le simplcsv pour voir si cela conviendrait.

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

Discussions similaires

  1. Export CSV et accents
    Par Unusual dans le forum Salesforce.com
    Réponses: 5
    Dernier message: 22/08/2012, 16h59
  2. export CVS problème accent
    Par franfr57 dans le forum Flex
    Réponses: 1
    Dernier message: 01/09/2011, 16h00
  3. [2.5.2] Export CSV : Problème de visibilité
    Par jean.dat dans le forum BIRT
    Réponses: 6
    Dernier message: 25/06/2010, 15h56
  4. Génération fichier csv problème accent
    Par marion782 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 11/08/2009, 09h16
  5. Problème accent après export/import
    Par nils2rs dans le forum Administration
    Réponses: 0
    Dernier message: 22/05/2008, 02h36

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