C# Excel’den XML Dönüştürme

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda C# ile Excel’den XML dönüştürmeyi anlatacağım. Hadi başlayalım !
Table of Contents
Giriş
C# ile Excel işlemleri yapabilmek için iki alternatif yolumuz var. Bunlardan birincisi Excel uygulamasının kendi paketini kullanmak. İkincisi 3. parti bir paket kullanmak. Excel’in kendi paketini kullanabilmek için bilgisayarımızda Excel uygulamasının kurulu olması gerekiyor. Ayrıca projeyi farklı bir bilgisayarda çalıştırmak istediğimizde de o bilgisayarda da bizim bilgisayarımızda olan Excel sürümünün birebir aynı sürümü yüklü olması gerekiyor. Projeyi çalıştıracağımız bilgisayarda Excel uygulaması kurulu değilse yada projeyi yaparken kullandığımız Excel sürümü yüklü değilse proje hata verecek ve çalışmayacaktır. Bu durumda 3. parti paketleri kullanmak en doğru yol olacaktır. Bu konuda birçok paket var fakat benim en çok kullandığım paketin adı IronXL.Excel. Bu pakette bilgisayarınızda Excel uygulamasının kurulu olması şartı yok, yani Excel bilgisayarınızda yüklü olmasa bile Excel üzerinde işlemler yapabilirsiniz. Fakat IronXL.Excel paketi 3. parti bir paket olduğu için bu paketi indirip projeye dahil etmemiz gerekiyor. Burada da Nuget gibi paket yöneticilerini kullanmak daha hızlı işlem yapmamıza olanak sağlıyor. Nuget, Visual Studio kurulumu ile beraber gelen ve Visual Studio içerisinde gömülü bir şekilde terminal üzerinde çalışan uygulama ve bu uygulama sayesinde terminal üzerinden projeye istediğimiz paketleri ekleyebiliyoruz. Visual Studio üzerinden Tools > Nuget Package Manager > Package Manager Console adımlarını izleyerek Nuget terminalini açabilirsiniz. Ardından IronXL.Excel paketini projeye dahil edelim. Bunun için terminal üzerinden şu komutu çalıştırmamız gerekiyor;
install-package IronXL.Excel
IronXL Paketinin Dosyaya Eklenmesi
IronXL.Excel paketini projeye dahil ettik fakat henüz kod yazacağımız dosyada çağırmadık. Bunu da yapmak için dosyanın en başına gelerek şu satırı ekleyelim;
using IronXL;
WorkBook Sınıfı Türetme
IronXL.Excel paketinde öncelikle Excel dosyasını belirtmemiz gerekiyor. Bunu da WorkBook sınıfı ile yapıyoruz ve bu sınıfı kullanabilmek için yeni bir nesnesini türetmemiz gerekiyor. Yeni bir nesnesini de WorkBook sınıfı altında static olarak bulunan Load() fonksiyonunu yada sınıfın constructor metodunu kullanarak oluşturabiliyoruz. Her iki fonksiyonda string tipte Excel dosyasının yolunu parametre olarak istiyor. Örneğin masaüstünde bulunan dosya.xlsx dosyasını kullanarak WorkBook sınıfından yeni bir nesne üretelim.
WorkBook book = new WorkBook("c:/users/seyitd/desktop/dosya.xlsx");
XML Dönüştürme
Excel dosyasını belirttik, artık dosyayı XML’e dönüştürebiliriz. Bunun için de WorkBook nesnesi altında bulunan SaveAs() ve SaveAsXml() fonksiyonları kullanılmakta. Her iki fonksiyonda string tipte XML dosyasının yolunu parametre olarak istiyor ve gönderdiğimiz bu parametredeki yolda dosyayı oluşturarak içerisine Excel dosyasının XML halini yazıyor. Örneğin az önceki dosya.xlsx dosyasını masaüstünde dosya.xml olarak kaydedelim;
book.SaveAsXml("c:/users/kullanici/desktop/dosya.xml");
Tüm Kodlar
Evet IronXL.Excel paketini kullanarak Excel’den XML dönüştürme işlemi bu kadar. Kodları daha toplu olması için aşağıya bırakıyorum.
WorkBook book = new WorkBook("c:/users/seyitd/desktop/dosya.xlsx");
book.SaveAsXml("c:/users/kullanici/desktop/dosya.xml");
Tüm C# yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.