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 :

C# Existence d'un onglet


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 39
    Points : 34
    Points
    34
    Par défaut C# Existence d'un onglet
    Bonjour à tous !

    Je voudrais pouvoir, en C# :
    - comparer les noms de mes onglets d'un doc Excel avec un nom choisi ( en l'occurence, le nom du mois )
    - si un onglet existe avec ce nom, ecrire des choses dedans
    - s'il n'existe pas, le créer.

    J'ai eu beau chercher je n'ai rien trouver de folichon pouvant m'aider.

    Je vous remercie!

  2. #2
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    J'ai déjà lu cette page et je ne vois pas en quoi cela peut m'aider

  4. #4
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    pour vérifier si la feuille existe déjà
    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
     
    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());
        }
    }

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    J'ai finalement créé une fonction Open(string Name) qui, si le fichier existe l'ouvre, sinon le crée :

    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
     public void Open(string WorksheetName)
            {
                for (int i = 1; i < 20; i++)
                {
                    if (m_Workbook.Worksheets[i].Name == WorksheetName)
                    {
                        // Sélectionner la feuille donnée :
                        this.m_Worksheet = this.GetWorksheet(WorksheetName);
                        break;
                    }
                }
                if (m_Workbook.ActiveSheet != WorksheetName)
                {
                    GetWorksheet("modele");
                    ActSheet.Copy(oMissing, ActSheet);
                    m_Workbook.ActiveSheet.Name = dt.Day.ToString();
                }
           }
    cependant, une erreur se produit à la ligne 5 :
    L'exception System.NullReferenceException n'a pas été gérée
    Message=La référence d'objet n'est pas définie à une instance d'un objet.

    Pouvez vous me dire a quoi cela est du et comment regler ce probleme ???

  6. #6
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    Bonjour ,

    si tu opte pour cette solution tu t'obliges toujours a avoir l'office installé sur ta machine !

    pour ton code tu peux me donner la totalité de code (la définition de la fonction GetWorksheet )

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    Ouioui, office ( version mobile ) sera présent sur la machine recevant l'application.
    Voici de code de GetWorkSheet, même si le probleme vient AVANT l'appel a cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public _Worksheet GetWorksheet(string WorksheetName)
            {
                foreach (_Worksheet Worksheet in xla.ActiveWorkbook.Worksheets)
                {
                    if (Worksheet.Name == WorksheetName)
                    {
                        return ActSheet = Worksheet;
                    }
                }
                // Retourne la feuille active par défaut :
                return ActSheet;
    }

  8. #8
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    un Exemple simple
    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
    using Microsoft.Office.Interop.Excel;
        using System;
     
        class ExcelReader
        {
            _Application application = new Microsoft.Office.Interop.Excel.Application();
            _Workbook workbook = null;
     
            public ExcelReader(string filePath)
            {
                workbook = application.Workbooks.Open(filePath, Type.Missing, Type.Missing, Type.Missing,
                                                                Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                                                                Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                                                                Type.Missing, Type.Missing, Type.Missing);
            }
     
             public  bool IsExistWorkSheet(string wkSheetName)
            {
                Sheets worksheets = workbook.Worksheets;
     
                for (int i = 1; i < worksheets.Count + 1; i++)
                {
                    if (worksheets[i].Name == wkSheetName)
                        return true;
                }
                return false;
            }
        }

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    ( je précise que je suis débutante )
    Je mets cette classe où ?! et comment je l'apelle dans ma gestion d'évenements ??

  10. #10
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    tu peux créer cette classe pour que tu met dedans toute tes fonctions liées a la manipulation EXCEL.

    et pour l'utilisation c'est simple il suffit d'instance la classe pour manipuler le fichier passé en paramètre

    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      ExcelReader excel = new ExcelReader(@"D:\\test.xlsx");
                if (excel.IsExistWorkSheet("Cycle 0")) //la je cherche la feuille nommée Cycle 0 si elle exite il m'affiche Ok sinon No
                    MessageBox.Show("Ok");
                else
                     MessageBox.Show("No");

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    Merci
    Je teste ca au plus vite ( j'ai une mission secondaire entamée la ) et je reviens vers toi !!

    Encore merci !!

  12. #12
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    avec grand plaisir

  13. #13
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2013
    Messages : 39
    Points : 34
    Points
    34
    Par défaut
    Hé bien c'est juste parfait !!!
    Merci beaucoup, tu as bien fait avancé mon projet !

  14. #14
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    de rien

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

Discussions similaires

  1. ajouter des controles existant sur un onglet
    Par mahboub dans le forum IHM
    Réponses: 2
    Dernier message: 26/01/2007, 18h23
  2. [VBA-Excel] Vérifier si on un onglet existe dans un classeur
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/01/2007, 15h21
  3. [C#] Existe-t-il des barres d'onglets verticaux ?
    Par watcha2020 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 07/07/2006, 15h20
  4. Existence d'un onglet Excel
    Par jux dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/06/2006, 21h47
  5. [C# 2005]controle existence TabPage (onglet)
    Par Carew dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/06/2006, 20h44

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