Excelden veri okumak

Bu makalede C# ile MS Excelden çektiğimiz verileri ListBox'a yazmayı göreceğiz...

Merhabalar,

Bu makalede C'nin altında bulunan Calisma.xls dosyasının içeriğini çekip 2 ayrı ListBox a yazacağım.

2 ayrı listbox kullanmamdaki amaç verileri parça parça kullanabileceğimizi görmektir. Kodun temel maksadı bu şekilde olmakla beraber yazdığım kod satırlarının üzerlerine ne işe yaradıklarını söyleyerek devam edeceğim.

Öncelikle projemizin en üst kısmına veri tabanı ile ilgili sınıfları kullanabilmek için using System.Data.OleDb; satırını eklemeyi unutmayın.


private void button1_Click(object sender, EventArgs e)

        {

            //Excelden çekeceğimiz verileri tutacağımız bir tane DataTable nesnesi oluşturuyoruz.

            DataTable dt = new DataTable();

            //Verileri her seferinde listbox a eklememek için öncelikle listbox içeriklerimizi temizliyoruz.

            listBox1.Items.Clear();

            listBox2.Items.Clear();

            try

            {

                //MS Excel 97-200 dosyası için connectionstring aşağıdaki şekildedir.Not:Ayrıca tüm veri tabanları için ConnectionStringler için www.connectionstrings.com adresine bakabilirsiniz.

                OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:Calisma.xls;Extended Properties=Excel 8.0");

                connection.Open();

                //Burada dikkat edilecek en önemli şey [sayfa$] kısmıdır."[sayfa$]" excel dosyanızda üzerinde çalışacağınız sheet(sayfa) ismidir.Verileri DataAdapter ile çekiyoruz.

                OleDbDataAdapter da = new OleDbDataAdapter("Select * From [sayfa$]", connection);

                //Çektiğimiz verileri kullanımı kolay olması açısından Dataset e dolduruyoruz.

                da.Fill(dt);

                

                //Burada başlık kısımlarını listbox lara ekliyoruz.

                listBox1.Items.Add(dt.Columns[0].ColumnName.ToString());

                listBox2.Items.Add(dt.Columns[1].ColumnName.ToString() + "tt" + dt.Columns[2].ColumnName.ToString());



                //Basit bir for döngüsüyle Datatable nesnesi olan ds içindeki verileri sırası ile listbox lara ekliyoruz.

                for (int i = 0; i < dt.Rows.Count; i++)

                {

                    listBox1.Items.Add(dt.Rows[0].ToString());

                    listBox2.Items.Add(dt.Rows[1].ToString() + "tt" + dt.Rows[2].ToString());

                }

                //işimiz biten kontrolleri serbest bırakıyoruz ve bağlantımızı kapatıyoruz...

                da.Dispose();

                dt.Dispose();

                connection.Close();

            }

            catch (Exception ex)

            {

                MessageBox.Show("Hata: " + ex.ToString());

            }

        }




Şimdiye kadar yazdıklarım dediğim gibi Excelden verileri alıp listbox yapılarına dolduruyor. Siz bunu farklı amaçlarla kullanabilirsiniz.
Örneğin formunuza bir data Gridview ekleyip;


dataGridview.DataSource = dt;



derseniz excelden çektiğiniz veriler olduğu gibi dataGridviewde karşınıza gelecektir.

Herkese İyi çalışmalar...
  • Etiketler;
Murat Karakoyun
İstanbul Üniversitesi Bilgisayar Mühendisliği bölümü mezunu. Şu anda özel bir firmanın Bilgi İşlem ve Yazılım Geliştirme departmanında çalışıyor. Asp.Net (CSharp), MsSQL, HTML, CSS, Photoshop biliyor.
Yorum Yaz

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

Farklı bir çalışma elinize sağlık ...

Yukarı Git