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

 .NET Discussion :

Lire Cellules nommées Excel


Sujet :

.NET

  1. #1
    Membre régulier
    Inscrit en
    avril 2002
    Messages
    176
    Détails du profil
    Informations forums :
    Inscription : avril 2002
    Messages : 176
    Points : 75
    Points
    75
    Par défaut Lire Cellules nommées Excel
    Bonjour,

    Je souhaiterais pouvoir récupérer l'ensemble des cellules nommées d'un fichier Excel et de determiner si la cellule est :
    - une cellule classique
    - une plage nommée (tableau nommé)

    Mais je n'arrive pas à trouver la fonction qui me permet de trouver le nombre de cellules concernés.

    Je l'ai fait en VB, mais je ne trouve rien en C# :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    For Each N In Worksheets(1).Parent.Names
    <div style="margin-left:40px">If N.RefersToRange.Count = 1 Then
    ....
    ElseIf N.RefersToRange.Count > 1 Then
    ...
    End If</div>Next N


    Voici mon code actuel :

    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
     
           public static Dictionary<String, String>
            GetDefinedNames(String fileName)
            {
                // Given a workbook name, return a dictionary of defined names.
                // The pairs include the range name and a string representing the range.
                var returnValue = new Dictionary<String, String>();
     
                // Open the spreadsheet document for read-only access.
                using (SpreadsheetDocument document =
                    SpreadsheetDocument.Open(fileName, false))
                {
                    // Retrieve a reference to the workbook part.
                    var wbPart = document.WorkbookPart;
     
                    // Retrieve a reference to the defined names collection.
                    DefinedNames definedNames = wbPart.Workbook.DefinedNames;
     
                    // If there are defined names, add them to the dictionary.
                    if (definedNames != null)
                    {
                        foreach (DefinedName dn in definedNames)
                        {
                            if dn.Count > 1 // ne marche pas !
                                ....
     
                            if dn.Count == 1 // ne marche pas !
                                ...
                        }                                        
                    }
                }
                return returnValue;
            }
    Merci de votre aide

  2. #2
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2006
    Messages
    968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : avril 2006
    Messages : 968
    Points : 3 303
    Points
    3 303
    Par défaut
    J'ai trouvé ceci en cherchant un peu : http://excel.developpez.com/faq/?pag...ListeNomsTriee

    Après traduction en C# cela donne un truc du genre qui a l'air de répondre à tes besoins :

    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
     
    Microsoft.Office.Interop.Excel.Application appl = new Microsoft.Office.Interop.Excel.Application();
     
                try
     
                {
                    Microsoft.Office.Interop.Excel.Workbook work =  appl.Workbooks.Open(@"d:\\Test.xls");
     
                    Range PlageNom;
                    string sName = "";
                    string sNameToRefer = "";
     
                    for (int i = 1; i < work.Sheets.Count; i++)
                    {
                        Worksheet ws = work.Sheets[i];
     
                        foreach (Name n in work.Sheets[i].Parent.Names)
                        {
                            PlageNom = null;
                            PlageNom = n.RefersToRange;
     
                            if (PlageNom != null)
                            {
                                if(ws.Index == PlageNom.Worksheet.Index)
                                {
                                    sName = n.Name;
                                    sNameToRefer = n.RefersToR1C1Local;
                                }
                            }
                        }
                    }
     
                    work.Close();
                }
                catch (Exception ex)
                {
     
                }
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

Discussions similaires

  1. [XL-2003] Lire la valeur d'une cellule nommée d'un classeur avec VBA ?
    Par marot_r dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/03/2011, 13h36
  2. Lister les cellules nommées dans Excel en perl
    Par Pozzo dans le forum Langage
    Réponses: 3
    Dernier message: 21/09/2009, 21h10
  3. Comment lire un ensemble de cellule sous Excel
    Par bandit boy dans le forum C++Builder
    Réponses: 15
    Dernier message: 25/04/2008, 08h17
  4. Lire un fichier Excel pour modifier les valeurs des cellules
    Par Paloma dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/10/2006, 15h13
  5. [VB]Excel - Accès à une cellule nommée
    Par andrew07 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/02/2006, 13h01

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