Dinçer'in Bloğu

Blok derken; basketboldaki bloktan bahsediyorum, yazım yanlışı yok.. (Bkz. Sayfanın sağındaki resimde 7 numaraya yaptığım blok) Ama hazır blok olayına girmişken bir de blog olayına girsem fena olur mu? Bence olmaz. Hadi buyrun...

Perşembe, Temmuz 28, 2005

C# ile Excel dosyasını okumak

Geçenlerde şirkette yazdığım bir uygulama için bugüne kadar bir Excel tablosunda tutulan binlerce kaydı veritabanına aktarmam gerekti. Uygulama C# ile yazılmış bir ASP.NET uygulamasıydı ve daha önce C# ile hiç Excel'den veri okumamıştım. Internette (Google'da da diyebiliriz) yaptığım kısa bir araştırmadan sonra bu aktarım işini en basit şekilde OleDb kullanıp veriyi SQL'den çeker gibi çekerek halledebileceğimi düşündüm. Ve haksız da çıkmadım...
Verinin Excel dosyasında düzenli bir şekilde tutulmuş olduğunu kabul edersek, yapacağımız iş oldukça basit. İşte gerekli olan kod:

SqlConnection con = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; " + "data source=C:\\Dosya.XLS;Extended Properties=Excel 8.0;");
SqlCommand command = new OleDbDataAdapter("select * from [Sheet1$]", con);

con.Open();
DataSet ds = new DataSet();
command.Fill(ds);

Bu kod sayesinde Dosya.XLS adlı dosyada bulunan her satır veriyi ds adlı DataSet instance'ımız içerisine atmış oluyoruz. Bu veriyi satır satır okumak için ise gene çok basit bir işlem yapacağız:

ds.Tables[0].Rows[0].ItemArray[1].ToString()

Yukarıdaki değer bize Excel doyasındaki ilk kaydın ilk hücresinin değerini verecek. Bir döngü içerisine koyarak tüm satırlardaki tüm hücrelerin değerlerine kokaylıkla ulaşabiliriz.

4 Comments:

  • At 2:05 ÖS, Blogger Unknown said…

    Bu yorum yazar tarafından silindi.

     
  • At 2:06 ÖS, Blogger Unknown said…

    Hata veriyor yazdığın kod a.q kalkmış bide burda yayınlıyon yaa

     
  • At 1:54 ÖÖ, Anonymous Adsız said…

    Eyüpmüsün nesin ne dangalak adamsın, sen programcımısın, soytarımısın. Sizin gibi insanlar yüzünden millet gına getirdi.

    Bu tarz siteler porno film yayınlanan forumlara benzemez. Eğer iki satır kodu kendine göre özelleştiremiyorsan laf atma insanların emeğine. Gerizekalı.

     
  • At 4:37 ÖÖ, Blogger Me Te said…

    Kodun sadece adapter kısmında sıkıntı var, aynı instance oluşturursanız, yani sqlcommand olan kısmı sqladapter olarak değiştirirseniz sıkıntı biter.
    Gayet güzel çalışıyor, eline sağlık.
    Bende takıldığım noktayı sorayım, hücre içinde trim şeklinde arama yaptığımda bulamıyor, aramayı nasıl yapabiliriz, büyük küçük harf duyarlılığı olmadan,boşlukları yoksayarak.

     

Yorum Gönder

<< Home