Tek Fotoluk İpucu 117 - LINQtoExcel ile Hello World

Merhaba Arkadaşlar,

Yine çok sıkıldığınız günlerden biri ve siz şöyle bir yarım saatlik kodlama uğraşı arıyorsunuz. Hani yeni birNuGet paketi denesem nasıl olur diyorsunuz belki de. Hatta azcık da zorlayıcı bir paket olsa, yükleyince hemen çalışmasa ama çok da vaktimi almasa derdindesiniz. Bir bakıyorsunuz karşınızda Excel dosyalarında LINQ(Language INtegrated Query) sorguları yazabilmenizi sağlayan LINQtoExcel. Hemen örnek bir Exceldosyası oluşturuyorsunuz belki de.

Ve bu dosya üzerinde basit bir LINQ sorgusu çalıştırmak istiyorsunuz. İlk olarak olayı kavramaya çalışıyorsunuz. Nasıl olabilir diye?

Aslında teori oldukça basit. Eğer LINQ işin içerisindeyse bir Excel dosyasındaki Sheet' ler sanki birer Entitygibi düşünülebilmeli. Hatta bu Sheet' lerin içerisindeki Column' lar, Entity' nin özellikleri(Property) olarak da değerlendirilebilmeli. Yani bir ORM(Object Relational Mapping) mantığı işin içerisinde olmalı. Sadece ilişkisel veri kaynağı bu senaryo için Excel dosyası. 

O zaman Players isimli Sheet' de yer alan oyunculardan Mustafar sisteminde olanları bulmak istersek nasıl bir yol izleyebiliriz. Yoksa aşağıdaki fotoğraftaki gibi olabilir mi?

Küçük bir not; Örneği ilk kez denediğinizde büyük ihtimalle  "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine." şeklinde bir hata mesajı alabilirsiniz. Nitekim LINQtoExcel çalışabilmesi için gerekli Access Database Engine' e ihtiyaç duymaktadır. Bu yüzden şu adresteki çözümü uygulayarak sorunu ortadan kaldırmanız gerekebilir.

Bir başka ipucunda görüşmek dileğiyle.

Yorumlar (3) -

  • Burak Bey,

    Yine çok faydalı ve hap gibi özet bir yazı. Bu tür pratik uygulamalarınızı zevkle takip ediyor olacağım.
  • Burak Bey,

    Kesin vardır ama, yine de sormak istedim. SELECTsorgulari dışında INSERT ve DELETE sorguları da linqtoexcel için geçerli degil mi?
  • Anladığım kadarıyla sadece okuma işlemleri yapabiliyoruz. Burak hocam peki elimizde hazırda olan bir generic listi bir excel dosyası oluşturup yazma işlemi nasıl yapacağız? Bu kütüphanenin içinde öyle bir method bulamadım.

Yorum ekle

Loading