Bu örnekte bilgisayarda herhangi bir yerde olan Excel dosyasındaki verilerin C# Windows Form içinde eklenmiş olan Listbox içine nasıl getirilebileceğimizi göreceğiz.
Örneğimizde dosyamızın konumunu seçebilmek için openFileDialog kontrolünden faydalanacağız.
Doosya seçim işlemi bittiğinde excel dosyasında A sütununda bulunan verilerin Listbox içine aktarıldığını göreceğiz.
Bu örnekte sadece tek sütunlu bir excel dosyası kullanacağız. Eğer daha fazla sütun bulunan bir excell dosyasından DataGridView içine veri çekmek isterseniz daha önce hazırlamış olduğum konuya buradan göz atabilirsiniz.
Örneğimize geçelim.
İlk adım olarak C# Form içine birer adet listbox, button ve openFileDialog kontrolü ekleyelim.
Bağlantı için gerekli satırımız;
1 2 3 | using System.Data.OleDb; |
Şimdi de Button1_Click olayı için alttaki kodları yazalım.
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 | private void button1_Click(object sender, EventArgs e) { openFileDialog1.Title = "Lütfen Dosya Seçiniz"; openFileDialog1.Filter = " (*.xlsx)|*.xlsx"; openFileDialog1.FilterIndex = 1; openFileDialog1.Multiselect = true; if (openFileDialog1.ShowDialog() == DialogResult.OK) { string dosya_adres = openFileDialog1.FileName; OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + dosya_adres + ";Extended Properties=Excel 12.0"); con.Open(); string sql = "SELECT * from [Sayfa1$A1:A5000] "; OleDbCommand veri2 = new OleDbCommand(sql, con); OleDbDataReader dr = null; dr = veri2.ExecuteReader(); while (dr.Read()) { if (dr[0] != "") { listBox1.Items.Add(dr[0].ToString()); } else { break; } } con.Close(); } } |
System.InvalidOperationException: ”Microsoft.ACE.OLEDB.12.0′ sağlayıcısı yerel makine kayıtlı değil.’ hatası alıyorum hocam
Oledbconnection komutu hala hata veriyor.