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/

Mustafa BÜKÜLMEZ
http://mustafabukulmez.com -- Web sitesi, ERP, MRP, CRM ve kişiye özel uygulamalar hazırlanır. -- Deneyip çalıştığını onaylamadan çok nadir ders eklerim. Denemediklerim ise eski makalelerimdendir. Hem bildiklerimi paylaşmak hemde her seferinde aramamak için yayınlıyorum. -- *Bilgi paylaştıkça çoğalır. *Bir mum diğer mumu yakmakla ışığından bir şey kaybetmez. Aksine Daha çok ışık yayar. -- 1992 İstanbul doğumluyum. Kahramanmaraş'ta yaşıyorum. Lise: Ağ sistemleri ve Yönetimi, Üniversite: Bilgisayar Programcılığı.. -- 07.2014 tarihinden beri bir firmada Bilgi İşlem Müdürü olarak çalışmaktayım. -- Kişisel Bloğum : https://csharpiledundenbugune.blogspot.com.tr/
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.

Yukarı Git