C# ile Excel Dosyasına Bağlanma (OleDbConnection ile) – Ahmet Cansever
Pazartesi , 27 Şubat 2017
Anasayfa » C# » C# ile Excel Dosyasına Bağlanma (OleDbConnection ile)

C# ile Excel Dosyasına Bağlanma (OleDbConnection ile)

Bu yazımızda OledbConnection kullanarak Excel dosyasına bağlanıp Select (Veri çekme), İnsert (Veri Ekleme), Update (Güncelleme) işlemlerini gerçekleştireceğiz ve Excel dosyasındaki verilerin Datagridview de görüntülenmesini sağlayacağız.

Örneğimizde D sürücüsünde bulunan ve Öğrenci listesi tutan “ogrenci.xlsx” isimli bir excel dosyasına bağlanıp bu işlemleri gerçekleştireceğiz. Excel dosyamızı aşağıdaki şekilde hazırlıyoruz.

Daha sonra formumuzu aşağıdaki şekilde tasarlayalım.

excel_datagrid

Kodlamaya başlayalım. İlk olarak bağlantı sağlayabilmek için;

ekliyoruz.

Daha sonra verileri Getir butonuna çift tıklayarak excel verilerimizin DataGridView üzerinde görünmesini sağlamak amacıyla aşağıdaki kodları yazıyoruz. OledbConnection bağlantı cümlesinde HDR= YES yaparak ilk satırın sütun başlığı olarak ayarlanmasını sağlıyoruz.

Ekle komutuna basınca Textbox’ lara girmiş olduğumuz değerlerin ilgili Excel sütunlarına kayıt işlemi için aşağıdaki kodları yazıyoruz.

Güncelleme işlemini TextBox1′ e girdiğimiz Öğrenci Numarasına göre yapalım. Örneğin 155 nolu Öğrencinin bilgilerini değiştirmek gibi. Bunun için Güncelle butonuna aşağıdaki kodları yazabiliriz.

Yukarıdaki örnekte bağlantıyı tekrar tekrar yazmak yerine Public olarak tanımlayabilirsiniz. İsterseniz veri seçme için bir metot oluşturarak Güncelleme ve Ekleme işlemlerinden sonra veya form açıldığında datagrid’ in güncellenmesini sağlayabilirsiniz.

Kodların bu şekilde düzenlenmiş hali ise aşağıdaki şekilde olacaktır.

Hakkında admin

İlginizi Çekebilir

İç içe For Kullanımı

Son Güncellenme : 19th Aralık, 2016İç içe for döngüsü kullanarak çarpım tablosu oluşturma örneği: İlgili

31 Yorumlar

  1. herkesin temel şikayeti bağlantı hatası nasıl çözecez? neden olur.
    OleDbConnection baglanti = new OleDbConnection(@”Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\veritabani.xlsx; Extended Properties=’Excel 12.0 xml;HDR=YES;'”);

  2. Merhabalar
    An unhandled exception of type ‘System.InvalidOperationException’ occurred in System.Data.dll

    Additional information: ‘Microsoft.ACE.OLEDB.12.0’ sağlayıcısı yerel makine kayıtlı değil.
    bende bu şekilde bir hata alıyorum yardımcı olurmusunuz

  3. Merhaba,

    Excele yazılan değerler Metin olarak gözüküyor ben sayı olarak gözükmesini istiyorum.Ve örneğin Numara yerine 25 yazdığımda önüne ‘ işareti koyuyor.Bu konuda yardımcı olurmusunz

  4. Microsoft Access veritabanı altyapısı ‘Sayfa2’ nesnesini bulamadı. Nesnenin varolduğundan ve adını ve yolunun adını doğru yazdığınızdan emin olun. ‘Sayfa2’ yerel nesne değilse, ağ bağlantınızı denetleyin veya sunucu yöneticisine başvurun. ŞÖYLE BİR HATA ALIYORUM.
    SIKINTI NEDİR ACABA?

    • Excel dosyasinda sayfa2 nin adini degistirmis olabilirmisiniz? Kontrol ederek tekrar deneyin. Su an gormeden birşey diyemiyorum.

      • kontrol ettim ogrenci excel sayfa hiç bir farkı yok.

        private void button2_Click(object sender, EventArgs e)
        {
        OleDbConnection baglanti = new OleDbConnection(@”Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\ogrenci.xlsx; Extended Properties=’Excel 12.0 xml;HDR=YES;'”);
        baglanti.Open();
        OleDbDataAdapter da = new OleDbDataAdapter(“SELECT * FROM [Sayfa2]”, baglanti);
        System.Data.DataTable dt = new System.Data.DataTable();
        da.Fill(dt);
        dtgrdvCihazBilgileri.DataSource = dt.DefaultView;
        baglanti.Close();

        }
        kodu bu şekilde yazdım. excell dosyamıda ogrenci diye oluşturdum D nin içine attım Sayfa2 diye kayıtlı sayfam var ama o hatayı alıyorum bağlantıda bir hata mı yapıyorum çözemedim.

  5. merhaba sql veri tabanı kullanıyorum. excelden nasıl veri çekebilirim

  6. C# programlamada Visual studio da yazıyorum. Excel dosyasındaki veriyi dosyayı seçerek sistemime yüklüyorum.Dosyasındaki sütunların birinde fatura sıra no diye bir alan var.Fatura sıra no en az 13 haneden oluşuyor örneğin 2016000000123 yada daha uzun olabiliyor. Bunu excel dosyasındaki ilgili hücreye yazınca bu şekilde değil örneğin 2,0000+E0000 vb. şekilde oluyor. Böyle bir veriyi hürce biçimlendirmesi yapmadan hatasız olarak nasıl yükleyebiliriz, kod lazım, hücrenin içini alsın.

  7. baglanti.Open(); kısmında bağlantı hatası alan arkadaşlar eğer x64 bir işletim sistemiyle çalışıyorlarsa; proje ayarlarından sırasıya Properties->Build->Platform target kısmından x86 ‘yı seçsinler.

  8. merhaba linkteki hatayı alıyorum

    http://hizliresim.com/883vDV

    ve ben bu provider kısmını anlamadım neye göre onları yazıyoruz bende excel 2003 versiyonu var başka bir provider mı yazmalıyım.

    sizin yazdıklarını yazdım olmadı ben ne yazmalıyım.

  9. Merhaba hocam;
    datagrid de seçili olan satırı silmeyi nasıl yapabiliriz? excel ile bağlıyorum diğer komutlar çalışıyor ama silme bulamadım.

  10. Sizin kodu aynen kopyalayıp c sharp a yapıştırdım. Form u da aynen sizin gibi düzenledim.

    Bağlantı açmada hata veriyor.

    • Ahmet Cansever

      Merhaba. Bağlanmak istediğiniz excel dosyasının yeri ve ismini kontrol edermisiniz. Bağlantı cümlesindekine uygun olması gerekiyor.

      • (@”Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Kitap1.xlsx; Extended Properties=’Excel 12.0 xml;HDR=YES;'”);

        masaüstüme Kitap1 diye bir excel oluşturdum. Yukarıdaki kodu yazdım.
        Bağlantı aç ta hata verdi.

        • Bağlantı cümlenizde dosya masaüstünde olarak görünmüyor. C: içerisinde görünüyor. masaüstünde oluşturduğunuz Kitap1 dosyasını C: dizinine kopyalarsanız sorun düzelecektir diye düşünüyorum.

  11. Merhaba ,
    DEvamlı oledbexception was unhandlad hatası alıyorum.
    baglanti.open(); kısmında veriyor bu hatayı
    yardımcı olurmusunuz?

  12. BENDE kayıtlı değil diyor bağlantıda hata verdi

  13. Merhabalar,
    Excelde yaptığımız text değişiklikleri datagridview de gözükebiliyor. Peki excelde yaptığımız hücre renklendirmeleri, yazıyı kalınlaştırma gibi biçimlendirmeler de datagridviewde gözükebilir mi?

  14. Teşekkürler.

Yorum Yap

Wordpress Tema indir