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 valeur dans fichier Excel


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 126
    Points : 37
    Points
    37
    Par défaut Récupérer valeur dans fichier Excel
    Bonjour,

    j'ai le même problème j'aimerai lire dans un fichier Excel. J'ai beau chercher de partout je ne vois pas pourquoi je n'arrive pas à afficher la valeur que je récupère.
    Voila mon 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
     
            private object Missing = System.Reflection.Missing.Value;
            private Excel.Application App_exc_lecture;
            private Excel.Workbook Classeur_exc_lecture;
            private Excel.Sheets AllFeuilles_exc_lecture;
            private Excel.Worksheet Feuille_ItemOPC_lecture;
            private Excel.Range Range_exc_lecture;
     
                try
                {
                    App_exc_lecture = new Excel.Application();
                }
                catch (Exception)
                {
                    MessageBox.Show("ATTENTION ! Application Excel introuvable");
                    return;
                }
     
                // Ouverture classeur
                try
                {
                    App_exc_lecture.Workbooks.Close();
                    Classeur_exc_lecture =
                    App_exc_lecture.Workbooks.Open(NomFichierExcelRep,    Missing,Missing,Missing, Missing,Missing, Missing, Missing, Missing,Missing, Missing, Missing, Missing,Missing, Missing);
     
                    AllFeuilles_exc_lecture = Classeur_exc_lecture.Sheets;
     
                    Feuille_ItemOPC_lecture =    (Excel.Worksheet)AllFeuilles_exc_lecture["Etors"]; // Feuille
                    Range_exc_lecture =   Feuille_ItemOPC_lecture.get_Range("A2","H5000"); //Lignes 2 à fin   
     
                    MessageBox.Show(Feuille_ItemOPC_lecture.Cells[3,4].ToString());
                }
                catch (Exception)
                {
                    MessageBox.Show("PROBLEME : Classeur " + NomFichierExcelRep + " introuvable ");
                    return;
                }
                finally // a faire toujours
                {
                    // Fermeture classeur
     
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(Classeur_exc_lecture);
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(App_exc_lecture);
                    GC.Collect(); // Force le garbage collector à nettoyer les process
                }
    Voyez vous pourquoi ca ne fait rien ? et que je récupère l'exception ?

    Merci d'avance!

  2. #2
    Membre habitué Avatar de Antho42
    Profil pro
    Inscrit en
    Février 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 173
    Points : 161
    Points
    161
    Par défaut
    C'est laquelle d'exception qui est lancée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "ATTENTION ! Application Excel introuvable"
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "PROBLEME : Classeur " + NomFichierExcelRep + " introuvable "
    ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 126
    Points : 37
    Points
    37
    Par défaut
    c'est la deuxième ...

    en fait la partie ouverture du fichier marche correctement apparemment,

    c'est au moment de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Feuille_ItemOPC_lecture = (Excel.Worksheet)AllFeuilles_exc_lecture["Etors"]; // Feuille
    que je récupère la deuxième exception.
    Pourtant j'ai bien l'onglet "Etors" dans mon fichier excel...

  4. #4
    Membre habitué Avatar de Antho42
    Profil pro
    Inscrit en
    Février 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 173
    Points : 161
    Points
    161
    Par défaut
    Citation Envoyé par Emyleet Voir le message
    c'est la deuxième ...

    en fait la partie ouverture du fichier marche correctement apparemment,

    c'est au moment de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Feuille_ItemOPC_lecture = (Excel.Worksheet)AllFeuilles_exc_lecture["Etors"]; // Feuille
    que je récupère la deuxième exception.
    Pourtant j'ai bien l'onglet "Etors" dans mon fichier excel...
    Par onglet tu veux dire feuille j'imagine...
    Essaye un peu de rajouter un $ à la fin du nom de ta feuille, style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Feuille_ItemOPC_lecture = (Excel.Worksheet)AllFeuilles_exc_lecture["Etors$"];
    Dis-moi quoi

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 126
    Points : 37
    Points
    37
    Par défaut
    En fait je viens de trouver pourquoi je ne trouve pas la feuille ... :s
    En fait cette feuille s'appelle Etors+"" avec un espace à la fin ... :/

    Bon mais par contre maintenant quand je souhaite afficher la cellule 3,4 en faisant ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MessageBox.Show(Feuille_ItemOPC_lecture.Cells[3, 4].ToString());
    J'ai le message suivant : System._ComObject

    Tu vois pourquoi ?

  6. #6
    Membre habitué Avatar de Antho42
    Profil pro
    Inscrit en
    Février 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 173
    Points : 161
    Points
    161
    Par défaut
    Oui je vois pourquoi ...
    Tu as la réponse sur MSDN

    Et il faudrait voir plus particulièrement le modèle objet Excel.

    Je dirais, de mémoire, que tu dois faire quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Feuille_ItemOPC_lecture.Cells[3, 4].Range.Text

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 126
    Points : 37
    Points
    37
    Par défaut
    Ok c'est tout bon

    Merci beaucoup pour ton aide !!

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juin 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 126
    Points : 37
    Points
    37
    Par défaut
    :s heeeu en fait c'est a moitié bon.
    J'ai un problème bizarre .. dans mon fichier Excel j'ai des lignes à lire qui sont vides et quand je passe dessus j'ai directement l'exception.
    Ca doit venir de mon object[,] mais comment faire autrement ?

    Je fais ca :
    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
     
                App_exc_lecture.Workbooks.Close();
                Classeur_exc_lecture =        App_exc_lecture.Workbooks.Open(NomFichierExcelRep, Missing, Missing, Missing, Missing,Missing, Missing, Missing, Missing,Missing, Missing, Missing, Missing,Missing, Missing);
     
                    AllFeuilles_exc_lecture = Classeur_exc_lecture.Sheets;
                    Feuille_ItemOPC_lecture = (Excel.Worksheet)AllFeuilles_exc_lecture["Etors "]; // Feuille
     
                    object[,] Tab_exc;
                    Range_exc_lecture = Feuille_ItemOPC_lecture.get_Range("A1", "X1000"); 
                    Tab_exc = (object[,])Range_exc_lecture.Cells.Value2;
     
                    int k = 0;
                    int l = 2;
     
                    for (k = 3; k < 100; k++)
                    {
                                Feuille_ItemOPC.Cells[l, 1] = "ECFA02_" + Tab_exc[k, 20].ToString();
                                Classeur_exc.Save();
                                l++;
                    }
    Merci d'avance si vous avez une idée

  9. #9
    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
    Points : 2 927
    Points
    2 927
    Par défaut
    Lorsque le contenu d'une cellule Excel est vide, il renvoie null.
    Voir cet article, pour plus d'informations : Pilotage de l'application Office Excel (Excel Automation).

    Sinon, si c'est pour de la lecture de données, il est possible aussi de se connecter au fichier avec une connexion OleDb (voir sur ce forum : [Débutant][WinForms]Exporter une DataTable dans un fichier Excel).

Discussions similaires

  1. Réponses: 13
    Dernier message: 25/03/2013, 15h58
  2. récupérer valeurs dans nom de fichier
    Par bubulle29 dans le forum MATLAB
    Réponses: 1
    Dernier message: 19/05/2009, 11h49
  3. Rechercher une valeur dans fichier Excel depuis VBA Access
    Par tribaleur dans le forum VBA Access
    Réponses: 1
    Dernier message: 16/07/2008, 14h10
  4. Réponses: 6
    Dernier message: 28/12/2007, 22h34
  5. Exporter résultats dans fichier excel [forms 6i]
    Par OUALASS dans le forum Forms
    Réponses: 4
    Dernier message: 30/05/2006, 19h38

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