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 :

Test sur valeurs dans un classeur excel


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 79
    Par défaut Test sur valeurs dans un classeur excel
    Bonjour,

    je suis un peut débutant sur vb.net et j aimerait récupérer des valeurs depuis un fichier excel composer de plusieurs feuilles puis les lister sur une listbox(lst_recrute)
    je recupere le chemain du fichier depuis le textbox txt_fichier_recrute.text
    la feuille depuis le combobox cmb_mois
    une valeur de test depuis le textbox txt_age.text

    mon fichier ce présente ainsi
    3 colonnes
    nom(a) Age (b) salaire(c)

    les valeurs dans tout les colonnes commencent depuis la ligne 10 c'est a dire que la première valeur nom cellule(a10),age cellule(b10),salaire cellule(c10)
    le nombre de ligne et variable il peut être 10 comme il peut être 2000
    ce que je veux c tester sur toutes les cellules (d'une feuille) age si age correspond a la valeur txt_age.text alors récupérer les deux valeurs nom & salaire dans une listebox

    j'espere que j'ai bien explique mon problème
    merci d'avance pour vos réponses

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    327
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 327
    Par défaut
    Bonjour,
    Pour récupérer des valeurs dans un fichiers Excel il y a deux solutions :
    1) Tu crée un processus Excel et tu lit directement dedans ligne par ligne ou valeur par valeur. C'est assez long mais tu peux faire de la mise en page.

    2) Tu considère celle que je te conseillerai dans ton cas, c'est de considérer le fichier excel comme une base de donnée et de l'attaquer directement avec ADO.Net. C'est beaucoup plus rapide dans ta chaine de connexion tu dis que c'est un fichier excel et tu lui passe le chemin après tu fait ta requête sur les feuille excel comme si c'était des tables. Tu stockes tes résultats dans un dataset et tu les parcours tout en faisant ton traitement.

    J'espère que cela pourra t'aider pour toutes précisons complémentaires n'hésite pas à reposter.

    A bientôt

  3. #3
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 79
    Par défaut
    salut wakan et merci pour ta réponse
    pourrait tu me donne un exemple de code pour les deux méthodes
    je sais que j'en demande trop dsl

  4. #4
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Exemple de code pour la solution 2) :
    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
    string filePath = @"C:\Classeur1.xls";
    string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=\"Excel 8.0\";";
    OleDbConnection connection = new OleDbConnection(connectionString);
    string cmdText = "SELECT * FROM [Feuil1$]";
    OleDbCommand command = new OleDbCommand(cmdText, connection);
     
    command.Connection.Open();
    OleDbDataReader reader = command.ExecuteReader();
     
    if (reader.HasRows)
    {
        while (reader.Read())
        {
            Console.WriteLine("{0}\t{1}", reader[0].ToString(), reader[1].ToString());
        }
    }
     
    reader.Close();
    command.Connection.Close();

  5. #5
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 79
    Par défaut
    est ce que c'est du vb ?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Par défaut
    'declaration
    Public xlApp1 As Excel.Application
    Public xlBook1 As Excel.Workbook
    Public xlRange1 As Excel.Range
    Public xlWKS1 As Excel.Worksheet
    'object qui va recupere les valeurs d'excel dans un tableau a double dimention
    Private o_ExcelInfo1 As Object

    'creation d'excel
    xlApp1 = New Excel.Application
    xlBook1 = xlApp1.Workbooks.Open(PreviousFile)
    xlWKS1 = xlBook1.Sheets(1)
    'code
    xlRange1 = xlWKS1.UsedRange
    ReDim o_ExcelInfo1(0 To xlRange1.Rows.Count, 0 To xlRange1.Columns.Count)
    o_ExcelInfo1 = xlRange1.Value

  7. #7
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Citation Envoyé par driver Voir le message
    est ce que c'est du vb ?
    Non, c'est du C#, mais tu devrais pouvoir facilement le traduire en VB.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/03/2012, 15h58
  2. Réponses: 1
    Dernier message: 17/01/2010, 17h59
  3. Récupérer sur base d'un test de valeur dans xsl
    Par stujava dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 22/06/2009, 14h14
  4. récuperer une valeur de 3 classeur Excel
    Par spopo dans le forum Excel
    Réponses: 3
    Dernier message: 11/07/2005, 12h10
  5. Changer de feuille dans un classeur Excel
    Par couiss dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 09/05/2005, 10h05

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