C# Open File Dialog ile Excelden Veri Çekmek

Ocak 31, 2017 Mustafa BÜKÜLMEZ 0 Yorum

Selamlar arkadaşlar,
Bu dersimizde Open File dialog kullanarak kullaran bir excel dosyasından veri çekip o verileri bir datatable'a doldurarak gridControl'e yazdırma işlemini görelim.
Formumuz da bir button ve bir gridControl(Devexpress) olsun. Button'un click eventinin altına;
C#
using System.Data.OleDb; // ekleyelim

         OpenFileDialog OFD = new OpenFileDialog()
            {
                Filter = "Excel Dosyası |*.xlsx| Excel Dosyası|*.xls",
                // open file dialog açıldığında sadece excel dosyalarınu görecek
                Title = "Excel Dosyası Seçiniz..",
                // open file dialog penceresinin başlığı
                RestoreDirectory = true,
                // en son açtığı klasörü gösterir. Örn en son excel dosyasını D://Exceller adlı
                // bir klasörden çekmiş olsun. Bir sonraki open file dialog açıldığında yine aynı 
                // klasörü gösterecektir.
            };
            // bu da bir kullanım şeklidir. Aslında bu şekilde kullanmak daha faydalıdır. 
            // bir çok intelligence aracı bu şekilde kullanılmasını tavsiye ediyor.
            if (OFD.ShowDialog() == DialogResult.OK)
                // perncere açıldığında dosya seçildi ise yapılacak. Bunu yazmazsak dosya seçmeden 
                // kapandığında program kırılacaktır.
            {
                DosyaYolu = OFD.FileName;// dosya yolu
                DosyaAdi = OFD.SafeFileName; // dosya adı

                OleDbConnection baglanti = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + DosyaYolu + "; Extended Properties='Excel 12.0 xml;HDR=YES;'");
                // excel dosyasına access db gibi bağlanıyoruz.
                baglanti.Open();
                OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Sayfa1$]", baglanti);
                // burada FROM dan sonra sayfa1$ kısmı önemlidir.sayfa adı faklı ise örn
                // sheet ise program hata verecektir.
                // NOT: Excel dosyanızın ilk satır başlık olsun. Yani sistem öyle algıladığından 
                // ilk satırdaki bilgileri başlık olarak tanımlayıp almıyor. Ne yazarsanız yazın
                // sorun teşkil etmiyor. Tabi db için özel olan karakterleri kullanmayın.
                DataTable DTexcel = new DataTable();                
                da.Fill(DTexcel);
                // select sorgusu ile okunan verileri datatable'ye aktarıyoruz.

                gridControl1.DataSource = DTexcel;
                // datatable'ı da gridcontrol'ün datasource'una atıyoruz.

                baglanti.Close();
                // bağlantıyı kapatıyoruz.
             }
kodlarını yazdıktan sonra, build edip denediğiniz de sorunsuzca verilerin dolduğunu göreceksiniz.
Bu dersimizde bu kadar arkadaşlar.
İyi kodlamalar.

0 Yorum: