C# Open File Dialog ile Excelden Veri Çekmek

C# Open File Dialog ile Excelden Veri Çekmek

Selamlar bu dersimize Open file dialog kullanrak exceldeki verileri bir gridview'e yazdıralım.

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;

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.

http://mustafabukulmez.com/

Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Merhaba ben yukaridaki örneği uygulayarak programı yaptım çalıştı.Benim şöyle bir sorunum var kullanacağım excel dosyasını internetten çekiyorum sayfa ismi sabit kalmıyor tarihe göre değişiyor.Örn.Siparişler_06092018 gibi bu sayfa ismini nasıl değişkene atarız birde ben bu excelden sadece C,D,E ve K sütunlarından veri çekmesini istiyorum.Yardımcı olursanız memnun kalırım.Teşekkürler.
Selamlar, DateTime dt = new DateTime (Yil, ay ,gün) // excel adı olarka kullanacağımız tarihi oluşturuyoruz string ExcelDosyaAdi = "Siparisler_" dt.ToString("ggMMyyyy"); // excel adını oluşturuyoruz. değişkeni excel dosya adı olarak kullanabilirsiniz. aynı şekilde sayfa adı olarak da kullanabilirsiniz.
Merhaba Örnek çok güzel olmuş ellerinize sağlık.Uyguladım güzel bir şekilde çalıştı ancak bir sorum olacak sorgu cümlesini yazarken sayfa1 yazan yerdeki sayfa adı ben de değişken sabit değil bunu nasıl yapabiliriz çünkü ben excel dosyasını internetten çekiyorum her seferinde sayfa ismi farklı geliyor.Örn:siparişler_05092018 , siparişler 10092018 gibi yardımcı olursanız sevinirim.
Merhaba ben SQL den bağlantı sağlıyorum dosya adı ve dosya yolu alanlarına neleri getirmem gerekiyor ve sqlconnection yani bağlantıma ne yazmam gerekiyor bir türlü çözemedim yardımcı olursanız sevinirim
dosya adı ve dosya yolu alanlarına siz birşey yazmayacaksınız. OpenFileDialok ekranından seçtiğiniz dosyanın yolu ve adı alınacak. Dosya yolu = C://dosya.xls Dosya adı = dosya.xls şeklinde olacaktır.

Yukarı Git