Menu

Récupère 2eme feuille d'un fichier excel [Résolu]

-
Bonjour tout le monde

voici mon code qui récupère la 1er feuille d'un fichier excel

 DataTable resultat = null;
      message = string.Empty;

      ////string connectionString = string.Format(@"Provider=Microsoft.Jet.OleDb.4.0;Data Source={0};Extended Properties=""Excel 8.0; HDR=YES; IMEX=1;"";", nomFichier);
      string connectionString = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0 Xml;HDR=YES; IMEX=1;"";", chemin);
      string nomFeuille = string.Empty;
      try
      {
        using (OleDbConnection conn = new OleDbConnection(connectionString))
        {
          conn.Open();

          using (DataTable dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }))
          {
            nomFeuille = dtSchema.Rows[0].Field<string>("TABLE_NAME");
          }

          string sql = string.Format("SELECT * FROM [{0}]", nomFeuille);
          resultat = OleDbHelper.ExecuteDataSet(conn, CommandType.Text, sql).Tables[0];
        }
      }
      catch (Exception ex)
      {
        message = ex.ToString();
        resultat = null;
      }

      return resultat;


le problème c'est que je veux pas la 1er mais la 2ème feuille si vous savez comment faire je suis preneur

Merci d'avance
Afficher la suite 

1 réponse

0
Merci
résolu

 using (DataTable dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }))
          {
            foreach (DataRow row in dtSchema.Rows)
            {
              nomFeuille = row.Field<string>("TABLE_NAME");
              sql = string.Format("SELECT * FROM [{0}]", nomFeuille);
              sql = sql.Replace("''", "'"); // BP T37177 : On remplace les '' par des ' pour que la requête soit correcte.
              DataTable dt = OleDbHelper.ExecuteDataSet(conn, CommandType.Text, sql).Tables[0];

              // Suppression des caractères qui débutent et terminent le nom de l'onglet
              dt.TableName = nomFeuille.StartsWith("'") ? nomFeuille.Substring(1, nomFeuille.Length - 3) : nomFeuille.Substring(0, nomFeuille.Length - 1);

              resultat.Add(dt);
            }
          }
Commenter la réponse de Juduno