C# ile Ücretsiz ve Açık Kaynak Kütüphaneler Kullanarak Excel Dosyalarını Okuma

C# uygulamalarınızda Excel dosyalarını doğrudan okumakta zorlandığınız oldu mu? Eğer öyleyse, yalnız değilsiniz! Birçok geliştirici, Excel elektronik tablolarından veri çıkarmakta manuel işlemlere bağımlı kalma zorluğuyla karşılaşıyor. İyi haber şu ki, açık kaynak kütüphaneler kullanarak bunu başarmanın verimli ve ücretsiz yolları mevcut. Bu blog yazısında, C# programınızdan doğrudan Excel dosyalarını (.xls) nasıl okuyabileceğinizi keşfedeceğiz ve sıkıcı manuel adımları ortadan kaldıracağız.

Problem: Excel Dosyalarının Manuel İşlenmesi

Geleneksel olarak, birçok geliştirici Excel sayfalarını Unicode metin formatına aktarma ve ardından oluşan sekme ile ayrılmış dosyaları ayrıştırma yolunu seçiyor. Bu yöntem çalışsa da, en verimli yöntem değil. Özellikle bu süreci sık sık tekrarlamanız veya birden fazla dosya ile uğraşmanız gerektiğinde rahatsız edici olabilir.

Neyse ki, Excel dosyalarını programatik olarak okumanın daha iyi yolları var. Çözümü inceleyelim!

Çözüm: Excel Dosyalarını Okumak için OLE DB Kullanma

C#’ta Excel dosyalarını okumanın en basit yöntemlerinden biri OLE DB (Nesne Bağlama ve Gömme Veritabanı) sağlayıcısını kullanmaktır. OLE DB ile, Excel dosyalarına bir veritabanı gibi bağlanabilir ve ihtiyacınız olan verileri almak için SQL sorguları çalıştırabilirsiniz. İşte bunu adım adım nasıl yapacağınız:

Adım 1: Bağlantınızı Ayarlayın

Verileri okumadan önce, Excel dosyanıza bir bağlantı ayarlamanız gerekir. İşte bağlantı dizesini nasıl formatlayacağınıza dair bir örnek:

var fileName = string.Format("{0}\\fileNameHere", Directory.GetCurrentDirectory());
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName);
  • fileName: Bu değişken Excel dosyanızın yolunu tutar.
  • connectionString: Sağlayıcı ve veri kaynağı bilgilerini içeren Excel dosyasına yapılan bağlantıdır.

Adım 2: Verileri Alın

Bağlantıyı kurduğunuzda, belirli bir çalışma sayfasından veri alabilirsiniz. Aşağıda, çalışma sayfasından tüm verileri almak için kullanılacak kod verilmiştir:

var adapter = new OleDbDataAdapter("SELECT * FROM [workSheetNameHere$]", connectionString);
var ds = new DataSet();

// Alınan verilerle DataSet'i doldurun
adapter.Fill(ds, "anyNameHere");
DataTable data = ds.Tables["anyNameHere"];
  • workSheetNameHere kısmını veri almak istediğiniz sayfanın gerçek adı ile değiştirin.

Adım 3: Verileri Manipüle Etmek için LINQ Kullanın

Verileri bir DataTable içinde aldıktan sonra, verileri kolayca manipüle etmek ve sorgulamak için LINQ (Dil Entegre Sorgusu) kullanabilirsiniz. Belirli bir alanın boş olduğu satırları filtrelemek isterseniz, bunu nasıl yapabileceğinize dair örnek:

var data = ds.Tables["anyNameHere"].AsEnumerable();

var query = data.Where(x => x.Field<string>("phoneNumber") != string.Empty).Select(x =>
    new MyContact
    {
        firstName = x.Field<string>("First Name"),
        lastName = x.Field<string>("Last Name"),
        phoneNumber = x.Field<string>("Phone Number"),
    });

Anahtar Noktaların Özeti

Özetlemek gerekirse, C# ile OLE DB sağlayıcısı kullanarak Excel dosyalarını okumak oldukça basit ve manuel dosya işleme ihtiyacını ortadan kaldırıyor. İşte hatırlanması gereken ana noktalar:

  • OLE DB sağlayıcısını kullanarak düzgün bir bağlantı dizesi ayarlayın.
  • OleDbDataAdapter kullanarak Excel’den veri alın.
  • Elde edilen verileri filtrelemek ve manipüle etmek için LINQ’den yararlanın.

Bu adımları izleyerek, C# uygulamalarınızda Excel dosyalarını doğrudan okuma için sorunsuz bir entegrasyon oluşturabilirsiniz.

Sonuç

C#’ta Excel dosyalarını verimli bir şekilde okuma, sıkıntı olmak zorunda değildir. Önerdiğimiz yaklaşımla işlemi otomatikleştirebilir, zaman kazanabilir ve uygulama geliştirmede gerçekten önemli olan şeylere odaklanabilirsiniz.

Artık Excel dosyalarını okumada manuel adımları ortadan kaldıracak bilgiye sahipsiniz, projelerinizde denemeye başlayabilirsiniz!