1 pièce(s) jointe(s)
Remplir un combobox avec des données excel
Bonjour, je suis débutant en programmation C#.
Je voudrais remplir les items d'un combobox avec des données récupérées dans un fichier Excel.
Pour le moment mon code est le suivant mais ça ne fonctionne pas:
Code:
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
| //méthode permettant de sélectionner le fichier sur lequel on va réaliser le traitement
private void buttonDataSource_Click(object sender, EventArgs e)// ce qu'il se passe quand on clique sur le bouton de recherche
{
string fichier;
string connectionProvider;
string requete;
OpenFileDialog ofn = new OpenFileDialog ();// ouvrir une fenêtre de recherche et de sélection de fichier
ofn.Filter = "Fichiers Excel (*.xls;*.xlsx)|*.xls;*.xlsx";// filtre permettant de choisir quel type de fichier on souhaite afficher
ofn.Title = "Choix du fichier de données";// titre de la fenêtre
while (true)
if (ofn.ShowDialog() == DialogResult.OK)// ce qu'il se passe quand l'utilisateur clique sur Ouvrir
{
textBoxDataSource.Enabled = true;// dévérouille la zone de texte
textBoxDataSource.Text = ofn.FileName;// récupère le chemin du fichier et l'inscrit dans la zone de texte
textBoxDataSource.Enabled = false;// revérouille la zone de texte
return;// ferme la fenêtre de recherche
}
else// ce qu'il se passe quand il fait autre chose
{
return;// ferme la fenêtre de recherche
}
fichier = textBoxDataSource.Text;
connectionProvider = "provider=Microsoft.Jet.OLEDB.4.0;data source=fichier;Extended Properties=Excel 8.0";
requete = "select * from [Feuil1$]";
DataSet ds;
OleDbDataAdapter ThisCommand;
ThisCommand = new OleDbDataAdapter(requete, new OleDbConnection(connectionProvider));
ds = new DataSet();
ThisCommand.Fill(ds);
foreach (DataColumn c in ds.Tables[0].Columns)
comboBoxY.Items.Add(c);
} |
Ce code s'exécute lorsque je clique sur un bouton de recherche de fichier.
La partie recherche du fichier fonctionne très bien mais c'est après que ça ne marche plus.
Je vous met une image de mon interface en copie, peut-être que ça vous aidera.