Dernière mise à jour le 25/03/16

Présentation


Est-ce possible d’importer des données d’un fichier Excel dans un DataGridView dans l’environnement C#? la réponse est oui!! et c’est ce que nous allons voir un peu plus bas, avec deux exemples.
 




 

Programmation en C#


Attention!! dans cette programmation il va falloir créer un fichier Excel par exemple l’enregistrer sur le bureau. Ensuite il sera important de retourver le chemin du fichier excel pour que la programmation fonctionne. Une fois le chemin retrouvé il suffira de faire un copier coller et de le placer à l’endroit qui est en gras de couleur verte OleDbConnection Excel = new OleDbConnection(@”Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Julien\Desktop\Classeur1.xlsx;Extended Properties=””Excel 12.0 Xml;HDR=YES””;”);

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.Data.OleDb; // ne pas oublier !!
 

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {

            // on crée une connexion vers le fichier excel reste à trouver son chemin et de modifier la partie rouge...
            OleDbConnection Excel = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Julien\Desktop\Classeur1.xlsx;
Extended Properties=""Excel 12.0 Xml;HDR=YES"";");
            
            OleDbCommand cmd = new OleDbCommand("select * from [Feuil1$]", Excel); // l'étoile (*) permet d'importer l'ensemble du fichier Excel
            // j'ouvre la connexion 
            Excel.Open();
            DataTable tableau = new DataTable();
            OleDbDataReader Reader = cmd.ExecuteReader();
            tableau.Load(Reader);
            dataGridView1.DataSource = tableau;
        }
    }
}

Autre exemple
Nous avons vu précédemment que le faite de mettre une petite étoile (*) dans la ligne de programme “OleDbCommand cmd = new OleDbCommand(“select * from [Feuil1$]”, Excel);“, cela permet d’importer toute la feuille Excel. Nous allons voir qu’il est tout à fait possible d’importer le choix d’une colonne en la précisant du type: OleDbCommand cmd = new OleDbCommand(“select ColonneA from [Feuil1$]”, Excel);. Ainsi je ne fais que d’importer la colonneA (éviter de faire des espace entre le “e” et le “A”). Il ne reste plus qu’à remplacer la routine private void button1_Click(object sender, EventArgs e).

private void button1_Click(object sender, EventArgs e)
        {
            // on crée une connexion vers le fichier excel reste à trouver son chemin et de modifier la partie rouge...
            OleDbConnection Excel = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Julien\Desktop\Classeur1.xlsx;
Extended Properties=""Excel 12.0 Xml;HDR=YES"";");
            
            OleDbCommand cmd = new OleDbCommand("select ColonneA from [Feuil1$]", Excel); // remplacer (*) par ColonneA et regarder la différence 
            // j'ouvre la connexion 
            Excel.Open();
            DataTable tableau = new DataTable();
            OleDbDataReader Reader = cmd.ExecuteReader();
            tableau.Load(Reader);
            dataGridView1.DataSource = tableau; 
        }

Prototype en vidéo


Oui!! toujours…
 

Historiques


25/03/16
– Première mise à disposition