Merhaba arkadaşlar, bu yazımda C# form’da bir buton olacak ve bu butona basarak C# Excel Okuma işlemi ile bir DataGridView’e aktaracağız.
Öncelikle bu yazımda amaç sadece Excel’i datagridView’e aktarmak olduğundan tasarım üzerine yoğunlaşmayacağım. Direkt olarak Buton ve DataGridView kullanacağız.
Örnek tasarım aşağıda yer almaktadır.
Butonumuza mantıklı bir isim veriyorum.
DatagridView ve butonumuzu ekleyip isim verdikten sonra butona çift tıklayıp kod tarafımıza geçiyoruz.
Kodlarımızda beklenmeyen bir hata olduğunda programımızın kapanmaması için Try Catch blokları arasına alıyorum.
1. Adım C# Excel Okuma
Butona tıklanıldığında bana Excel dosyalarını seçmemi sağlaması için OpenFileDialog sınıfından nesne türetiyorum. Bu nesnemizin Filter özelliğine sadece Excel dosyalarını ekranımda göstermesi için gerekli bilgiyi ekliyorum. Son olarak bunu ekranda kullanıcının görebilmesini sağlıyorum.
Hocam anlattın da hani kodları derseniz buyurun kodlar:
// Dosya seçme penceresi açmak için OpenFileDialog file = new OpenFileDialog(); file.Filter = "Excel Dosyası |*.xlsx"; file.ShowDialog(); Burada seçilen dosyanın tam yolunu almak için ise aşağıdaki kodu kullanıyoruz.
// seçtiğimiz excel'in tam yolu string tamYol = file.FileName;
2. Adım
Yolunu aldığımız excel’in içeriğindeki bilgileri okumak için aşağıdaki kodları kullanıyoruz. Buradaki komut kısmında önemli olan Excel içerisindeki sayfa adını Sayfa1 olan kısım ile değiştirmenizdir. Genelde ilk açılan Excel’de Sayfa1 olarak gelmektedir. İlk gelen sayfayı almanın kodlarını da ilerleyen yazılarımda ekleyebilirim.
//Excel bağlantı adresi string baglantiAdresi = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + tamYol + ";Extended Properties='Excel 12.0;IMEX=1;'"; //bağlantı OleDbConnection baglanti = new OleDbConnection(baglantiAdresi); //tüm verileri seçmek için select sorgumuz. Sayfa1 olan kısmı Excel'de hangi sayfayı açmak istiyosanız orayı yazabilirsiniz. OleDbCommand komut = new OleDbCommand("Select * From [" + "Sayfa1" + "$]", baglanti); //bağlantıyı açıyoruz. baglanti.Open(); //Gelen verileri DataAdapter'e atıyoruz. OleDbDataAdapter da = new OleDbDataAdapter(komut);
3. Adım
Artık verilerimizi de aldık. DataGridView’e bu verileri eklemek için öncelikle DataTable sınıfımızdan nesne türetip bunu da Excel’den almış olduğumuz veriler ile doldurmamız gerekiyor. Bunun kodları da aşağıdaki gibi olacaktır.
//Grid'imiz için bir DataTable oluşturuyoruz. DataTable data = new DataTable(); //DataAdapter'da ki verileri data adındaki DataTable'a dolduruyoruz. da.Fill(data); //DataGrid'imizin kaynağını oluşturduğumuz DataTable ile dolduruyoruz. dataGridView1.DataSource = data;
Tüm proje için tıklayınız.
Eğer bir hata alıyorsanız buradaki çözümü deneyebilirsiniz.