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

Accès aux données Discussion :

[OleDB + Excel] 1ère feuille


Sujet :

Accès aux données

  1. #1
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut [OleDB + Excel] 1ère feuille
    bonjour,

    je travaille en oleDB sur un fichier excel. Je voudrai accéder à la 1ère feuille (en fait, il n'y a en toujours qu'une), mais je ne sais pas en trouver le nom. Y-a-y-il une méthode ?

    mon code actuel (tres lent à cause de l'exception, et qui ne trouve pas toujours les feuilles, car il y a des fichiers dont la feuille porte un nom différent (Page1, Results, etc...) :
    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
     
    			OleDbConnection oCnx = null;
     
    			try
    			{
    				DataSet oDs = new DataSet("ExcelDataset");
    				OleDbDataAdapter oAd = new OleDbDataAdapter();
     
    				string sCnxString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\"";
    				oCnx = new OleDbConnection(sCnxString);
    				oCnx.Open();
     
    				bool feuilleOK = false;
    				int k = 1;
    				do
    				{
    					try
    					{
     
    						string sCmdString = String.Format("SELECT * FROM [Feuil{0}$]", k.ToString());
    						OleDbCommand oCmd = new OleDbCommand(sCmdString, oCnx);
     
    						oAd.SelectCommand = oCmd;
     
    						oAd.Fill(oDs);
    						feuilleOK = true;
    					}
    					catch(Exception e)
    					{
    						++k;
    						feuilleOK = false;
    					}
    				}while(feuilleOK == false || k > 100);
     
    				if(k>100) throw new Exception("Feuille non trouvée");
     
    ...

  2. #2
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    Voilà, j'ai la solution à mon problème, je vous la livre :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    string sCnxString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\"";
    oCnx = new OleDbConnection(sCnxString);
    oCnx.Open();
     
    DataTable ExcelSheets = oCnx.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,new object[] {null, null, null, "TABLE"});
    string SpreadSheetName = "["+ExcelSheets.Rows[0]["TABLE_NAME"].ToString()+"]";
     
    // on peut ensuite récupérer le contenu de la table avec
    string sCmdString = "select * from "+SpreadSheetName;

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

Discussions similaires

  1. VB.net/Excel Ajouter feuille modèle
    Par poupich dans le forum VB.NET
    Réponses: 4
    Dernier message: 28/01/2007, 13h52
  2. [VBA-E] empecher femrture excel et feuille
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/01/2007, 10h16
  3. Excel (novice) : Feuilles liées et mises à jour
    Par adameteve dans le forum Access
    Réponses: 3
    Dernier message: 26/09/2006, 14h43
  4. [VBA EXCEL] Protection feuille avec filtre auto
    Par mirumoto dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/01/2006, 10h48
  5. [CR] export Excel (plusieurs feuilles)
    Par kaiserben dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 21/11/2005, 15h03

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