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

ASP.NET Discussion :

Récupération données dans fichier csv


Sujet :

ASP.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    septembre 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : septembre 2022
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Récupération données dans fichier csv
    Bonjour à tous,
    je cherche à récupérer les données d'un fichier csv pour les afficher dans la console mais seul une colonne s'affiche, et je ne trouve pas la source du problème...
    j'utilise la bibliothèque LINQtoCSV
    voici le code program.cs :

    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
    59
    60
    61
    62
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using LINQtoCSV;
    using System.Globalization;
     
    namespace CSVDemo
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                ReadCsvFile();
                Console.ReadKey();
            }
     
            private static void ReadCsvFile()
            {
                var csvFileDescription = new CsvFileDescription
                {
                    FirstLineHasColumnNames = true,
                    IgnoreUnknownColumns = true,
                    SeparatorChar = ';',
                    UseFieldIndexForReadingData = true
                };
     
                var csvContext = new CsvContext();
                var identite = csvContext.Read<CSVtab>("testRecupCSV.csv", csvFileDescription);
     
                foreach (var eleve in identite)
                {
                    Console.WriteLine($"{eleve.NomElv} , {eleve.PrenomElv}, {eleve.ClasseElv}");
                }
            }
        }
    }
     
     
    et voici ma classe Eleve.cs :
     
     
    using System;
    using LINQtoCSV;
     
    namespace CSVDemo
    {
        [Serializable]
        public class CSVtab
        {
     
            public string NomElv { get; set; }
     
     
            public string PrenomElv { get; set; }
     
     
            public string ClasseElv { get; set; }
     
        }
    }

  2. #2
    Membre du Club
    Homme Profil pro
    Alternant
    Inscrit en
    octobre 2019
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : octobre 2019
    Messages : 44
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    Tu peux lire un fichier CSV tel un texte sinon, tu peux utiliser un StreamReader pour lire chaque ligne et initialiser un nouvel objet sur chaque ligne, oublie pas de stocker tes objets dans une variable tel qu'une liste ce sera un bon début pour comprendre comment ça fonctionne

    Exemple de code que tu pourrais utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    List<CSVtab> maListe = new List<CSVtab>();
                StreamReader streamReader = new StreamReader("monCSV.csv");
                while(!streamReader.EndOfStream)
                {
                    string[] line = streamReader.ReadLine().Split(';');
                    CSVtab eleve = new CSVtab
                    {
                        NomElv = line[0],
                        PrenomElv = line[1],
                        ClasseElv = line[2]
                    };
                    maListe.Add(eleve);
                }
    Je te ferais un exemple aussi avec ta bibliothèque

  3. #3
    Membre du Club
    Homme Profil pro
    Alternant
    Inscrit en
    octobre 2019
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : octobre 2019
    Messages : 44
    Points : 62
    Points
    62
    Par défaut
    Re-bonjour,

    Alors petite correction, dans ta classe il faut que tu rajoutes les index des données et le nom des colonnes grâce à ta bibliothèque ce qui donne dans ton code :

    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
    59
    60
    61
    62
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using LINQtoCSV;
    using System.Globalization;
     
    namespace CSVDemo
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                ReadCsvFile();
                Console.ReadKey();
            }
     
            private static void ReadCsvFile()
            {
                var csvFileDescription = new CsvFileDescription
                {
                    FirstLineHasColumnNames = true,
                    IgnoreUnknownColumns = true,
                    SeparatorChar = ';',
                    UseFieldIndexForReadingData = true
                };
     
                var csvContext = new CsvContext();
                List<CSVtab> identite = csvContext.Read<CSVtab>("testRecupCSV.csv", csvFileDescription).ToList();
     
                foreach (var eleve in identite)
                {
                    Console.WriteLine($"{eleve.NomElv} , {eleve.PrenomElv}, {eleve.ClasseElv}");
                }
            }
        }
    }
     
     
    Classe Eleve.cs :
     
     
    using System;
    using LINQtoCSV;
     
    namespace CSVDemo
    {
        public class CSVtab
        {
            [CsvColumn(Name = "NomElv", FieldIndex = 1)]
            public string NomElv { get; set; }
     
           [CsvColumn(Name = "PrenomElv", FieldIndex = 2)]
            public string PrenomElv { get; set; }
     
            [CsvColumn(Name = "ClasseElv", FieldIndex = 3)]
            public string ClasseElv { get; set; }
     
        }
    }
    [/QUOTE]

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    septembre 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : septembre 2022
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour ton aide, mais sur le premier exemple le programme se ferme trop vite après l'exécution, je ne peux pas voir si les valeurs s'affichent. Pour la class c'est bien ce que j'ai fais en premier lieu mais même en indiquant le Column[] seul un champs est afficher et copier dans la variable...

  5. #5
    Membre du Club
    Homme Profil pro
    Alternant
    Inscrit en
    octobre 2019
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : octobre 2019
    Messages : 44
    Points : 62
    Points
    62
    Par défaut
    Oublie pas d'utiliser cette ligne pour en faire une liste ce sera plus facile dans ta fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<CSVtab> identite = csvContext.Read<CSVtab>("testRecupCSV.csv", csvFileDescription).ToList();
    Puis pense à spécifier les indexes aussi dans ta classe j'ai remarqué que sans les indexes il génère une exception

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [CsvColumn(Name = "NomElv", FieldIndex = 1)]
    Sinon il faut voir aussi comment ton csv a été fait faut peut-être adapter des choses sur le CsvContext

Discussions similaires

  1. Récupération données dans fichier csv
    Par Invité dans le forum C++
    Réponses: 13
    Dernier message: 11/04/2017, 15h21
  2. [XL-2013] Modifier donnée dans fichier csv par macro mais laisser fichier en csv
    Par Carambar dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 05/11/2016, 18h20
  3. [CSV] Tri de données dans fichier CSV
    Par PhilippeIEP dans le forum Langage
    Réponses: 6
    Dernier message: 08/10/2008, 11h48
  4. Script extraction données dans fichier CSV
    Par nollier dans le forum VBScript
    Réponses: 18
    Dernier message: 20/06/2008, 10h32
  5. Sauvegarde de données dans fichier csv
    Par issou dans le forum C
    Réponses: 1
    Dernier message: 22/12/2005, 09h36

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