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 :

[VSTO][C#]Comment récupérer liste des pages fichier .xls?


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2004
    Messages : 45
    Points : 36
    Points
    36
    Par défaut [VSTO][C#]Comment récupérer liste des pages fichier .xls?
    Bonjour,

    J'aurais aimé savoir comment récupérer la liste des feuilles que contient un fichier excel et ce via programmation "of course de cheval".

    Merci d'avance et à bientôt...

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2004
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Pour ceux qu'une réponse intéresserait, voilà la solution que j'ai trouvé, mais qui ne me satisfati pas encore. Effectivement cette solution utilise la référence à la Bibliothèque d'objets Microsoft Excel. Ce qui est un peu lourd pour récupérer parfois un seul String.

    Il faut donc ajouter la référence à la Bibliothèque d'objets Microsoft Excel. Pour ce faire, vous aller dans le menu Projet, cliquez sur Ajouter une référence. Sous l'onglet COM, recherchez Bibliothèque d'objets Microsoft Excel et cliquez sur Sélectionner.


    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
     
    using System.Reflection;
     
    ...
     
    Excel._Application  _myXlsApp   = null;
    Excel._Workbook     _myWrkBk    = null;
    Excel.Sheets        _mySheets   = null;
    Excel._Worksheet    _myWrkSht   = null;
     
    ---
     
    _myXlsApp = new Excel.Application();
    _myXlsApp.Visible = false; // ne pas faire apparaître Excel
     
    String fileName = @textBox1.Text; //je récupère le path ds un textbox
     
    _myWrkBk = _myXlsApp.Workbooks.Open(fileName,
                                               Missing, Missing, Missing, Missing,
                                               Missing, Missing, Missing, Missing,
                                               Missing, Missing, Missing, Missing,
                                               Missing, Missing);
                try
                {
                    _mySheets = _myWrkBk.Sheets;
                    int _nbSheet = _mySheets.Count;
                    for (int i = 1; i < _nbSheet + 1; i++)
                    {
                        _myWrkSht = (Excel._Worksheet)_mySheets[i];
                        cb.Items.Add(_myWrkSht.Name.ToString());
                        cb.SelectedItem = comboBox1.Items[0];
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
     
                _myWrkBk.Close(false, Missing, Missing); // ferme le XLS
                _myXlsApp.Quit(); // On met fin au pilotage
    Et voilà le tour est joué. Si quelqu'un voit une autre manière de faire, qu'il n'hésite pas à le faire savoir...

  3. #3
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut


    Justement je pensais aussi que VSTO (que je n'ai pas) proposerait une solution naturelle pour recuperer ce genre d'infos, donc je me suis abstenu de proposer une solution a l'ancienne

    T'est certain que VSTO ne propose pas un Excel.Documents(0).Worksheets.Count quelque part :

    Le risque c'est que ta solution est dependante de la version de la Dll d'excel (et donc de la version d'excel: 9, XP...)

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par Piotrek
    T'est certain que VSTO ne propose pas un Excel.Documents(0).Worksheets.Count quelque part :
    J'ai plus tout le bazard en tête mais il semble que si

  5. #5
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    En effet par le biais il me semble de l'objet Range qui peut représenter un simple objet ou représenter une collection d'objets (Il possède les membres Item et Count)
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2004
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    N'ayant pas VSTO non plus, je cherchais donc une solution moins couteuse. Apparemment il n'existe pas de version Express de VSTO... :cry:

    Donc à mon sens la seule solution hors VSTO reste celle que j'ai donnée...

  7. #7
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Il existe une autre possibilite hors VSTO, considerer Excel comme une base de donnees:
    http://www.dotnet247.com/247reference/msgs/54/271079.aspx

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2004
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Haaa génial, c'est exactement ce que je recherchais en fait!!!

    Pour ma culture personnelle, je vais regarder d'un peu plus près VSTO, mais sinon ma question a trouvé une réponse. Merci!!!

    Un tuto sur VSTO prochainement sur developpez???

  9. #9
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Suffit de demander

    http://morpheus.developpez.com/vsto2/

    Morpheus le fait

  10. #10
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par Piotrek
    Suffit de demander

    http://morpheus.developpez.com/vsto2/

    Morpheus le fait
    Pas mal le slogan

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 11/05/2012, 11h17
  2. Comment récupérer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    Réponses: 16
    Dernier message: 13/11/2009, 13h20
  3. Réponses: 2
    Dernier message: 12/01/2009, 15h50
  4. Comment récupérer le nom du fichier sans le chemin ?
    Par st0nky dans le forum Débuter
    Réponses: 3
    Dernier message: 08/12/2005, 11h01
  5. Comment récupérer / traiter des emails ?
    Par Clad3 dans le forum C++
    Réponses: 5
    Dernier message: 06/07/2005, 15h32

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