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 :

récupérer la valeur d'une celulle excel, en c#


Sujet :

C#

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 234
    Points : 130
    Points
    130
    Par défaut récupérer la valeur d'une celulle excel, en c#
    Bonsoir

    Avec visual studio 2019, j'essaie de savoir si une valeur donnée est présente dans une colonne Excel

    Je commence par déclarer mes objets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Microsoft.Office.Interop.Excel.Workbook xlBook;
    Microsoft.Office.Interop.Excel.Application xlApp;
    Microsoft.Office.Interop.Excel.Worksheet xlSheet;
    Une autre procédure les initialise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // récupération du fichier à lire
    OpenFileDialog frm = new OpenFileDialog();
    if (frm.ShowDialog() == DialogResult.OK)
    {
            xlApp = new Microsoft.Office.Interop.Excel.Application();            {
            xlBook = xlApp.Workbooks.Open(frm.FileName);
            // Récupération de la feuille à lire
            xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.Worksheets.get_Item(Le_Numero_De_Ma_Feuille);
    }
    Jusque là tout va bien!
    Quand une autre procédure essaie de lire le fichier excel

    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
     private bool this_VerifyAnalytAccount(string strToFind)
     {
           bool bFound = false;
           string strReaden;
     
           for (uint iRowReaden = 1; iRowReaden < 65; iRowReaden++)
           {
                strReaden = xlSheet.Cells[iRowReaden, 1].ToString();
     
                if (strReaden == strToFind)
               {
                     // Le code est trouvé.
                     bFound = true;                           
                     iRowReaden = 65;
               }
     
           }
           return(bFound);
    }
    strReaden me renvoie la valeur: System.__ComObject, pour toutes les cellules ce qui n'est pas du tout ce que je cherche !!!

    et pourtant quand j'écris dans un fichier excel j'utilise la syntaxe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlSheet.Cells[ligne, colonne] = "machaine";
    Je pense que pour lire une valeur la syntaxe est différente, mais je n'ai pas trouvé.

    Merci

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xlSheet.Cells[ligne, colonne]
    te renvoi un range.
    Il faut utiliser la propriété "Value" de ce range pour avoir la valeur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strReaden = xlSheet.Cells[iRowReaden, 1].Value;

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 234
    Points : 130
    Points
    130
    Par défaut
    Bonsoir Sankassss,

    J'y avais bien pensé à la fonction Value.

    Mais elle ne figure pas dans la liste des fonctions disponibles pour ma variable xlSheet
    et pourtant, celle-ci est du type (Microsoft.Office.Interop.Excel.Worksheet)

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    La fonction Value n'est pas sur xlSheet mais sur le Range.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Excel.Range rng = xlSheet.Cells[iRowReaden, 1];
    strReaden = rng.Value

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 234
    Points : 130
    Points
    130
    Par défaut
    Nickel Sankassss, ça marche!


    Merci.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/01/2019, 21h33
  2. [PowerShell] Récupérer la valeur d'une cellule Excel et la stocker dans une variable
    Par TheDjazairi.exe dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 07/05/2018, 13h50
  3. Réponses: 7
    Dernier message: 26/09/2014, 14h29
  4. [Débutant] Récupérer valeur d'une cellule Excel
    Par Skice dans le forum VB.NET
    Réponses: 2
    Dernier message: 08/07/2011, 09h44
  5. récupérer une valeur d'une table excel liée selon requète
    Par guimauve dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 13/07/2006, 14h48

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