Comment importé une feuille Excel vers un DatagridView

Suite à de multitudes recherches sur comment importé un classeur Excel en VB.net ou en C#, et à des multiples questions posées à cet effet sur le forum vb.net ou C#. Je me permets de vous présenté dans ce billet de blog une méthode simple et efficace pour importé un classeur Excel vers un DataGridView en VB.net ou C#.
Dans cet exemple nous utiliserons la technologie ADO.met qui permet d’exécuter des requêtes SQL sur Excel, ainsi grâce à une requête SQL nous pourrons définir les données a sélectionné suivant la feuille, la colonne, la ligne ou la cellule.
Cet exemple suppose que vous avez votre formulaire avec un DataGridView nommé DataGridView1

- Exemple VB.net

'déclaration du dataset
 Dim dat As DataSet
 dat = New DataSet
   'déclaration et utilisation d'un OLeDBConnection
 Using Conn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ExcelFile.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""")
            ' Conn.Open()
       'déclaration du DataAdapter
       'notre requête sélectionne toute les cellule de la Feuil1
       Using Adap As OleDbDataAdapter = New OleDbDataAdapter("select * from [Feuil1$]", Conn)
                'Chargement du Dataset
                Adap.Fill(dat)
                'On Binde les données sur le DGV
                DataGridView1.DataSource = dat.Tables(0)
 End Using
  'le end using libère les ressources
        End Using

Exemple C#

   //déclaration du dataset
            DataSet Dat;
            Dat = new DataSet();
   //déclaration d'un OLeDBConnection
            OleDbConnection conn = new OleDbConnection(/*"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\ExcelFile.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""*/);
        //déclaration du DataAdapter
       //notre requête sélectionne toute les cellule de la Feuil1
            OleDbDataAdapter Adap = new OleDbDataAdapter("select * from [Feuil1$]", conn);  
      //Chargement du Dataset
            Adap.Fill(Dat);
     //On Binde les données sur le DGV
           DataGridView1.DataSource = Dat.Tables[0] ;

Bonne programmation à tous et à bientôt pour d’autres astuces ;)

5 réflexions au sujet de « Comment importé une feuille Excel vers un DatagridView »

  1. votre code et très bien ms il fonctionne pas chez moi j’ai modifier le chemin du data source et le nom de la feuille mais ça fonction pas voici mon code
    Dim Conn As OleDbConnection = New OleDbConnection(« Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:canevas SITUATION RECETTES.xlsx;Extended Properties= » »Excel 8.0;HDR=Yes;IMEX=1″ » »)
    ‘ Conn.Open()
    ‘déclaration du DataAdapter
    ‘notre requête sélectionne toute les cellule de la Feuil1
    Dim Adap As OleDbDataAdapter = New OleDbDataAdapter(« select * from [Feuil4$] », Conn)
    ‘Chargement du Dataset
    Adap.Fill(ds1)
    ‘On Binde les données sur le DGV
    DGV.DataSource = ds1.Tables(0)

  2. Petite coquille sur ton code C#, tu as la connection string en commentaires (et les using ont disparu …)

    Attention, avec ce code, IMEX=1 va convertir le contenu des cellules en texte si au moins une des cellules d’une colonne donnee est du texte ou non numerique…et ca peut parfois poser probleme

    Sinon, 100% d’accord, il vaut mieux utiliser OLEDB que automation pour faire de la simple recuperation de donnees ;)

Laisser un commentaire