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

Herkese merhaba, C# yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda Excel dosyasınının HTML olarak çıktısını almayı yani Excel dosyasını HTML dosyasına çevirmeyi anlatacağım. Hadi başlayalım !
C# ile Excel işlemleri elbette yapılabiliyor ve bunun için ya Excel’in kendi paketini kullanacaksınız yada 3. parti bir paket kullanacaksınız. Excel’in kendi paketini kullanabilmek için bilgisayarınızda Excel uygulamasının yüklü olması gerekiyor ve sizde bulunan Excel sürümünde çalışabiliyor. Yani örneğin sizde Excel 2016 var ve Excel’in kendi kütüphanesini kullanarak geliştirme yaptınız ve projeyi başka bir bilgisayarda çalıştırmak istediniz. Çalıştırdığınız bilgisayarda da Excel 2016 sürümünün yüklü olması gerekiyor, aksi halde Excel paketi hata verecek ve işlem yapmayacaktır. Ayrıca farklı bir Excel sürümünün olması da sizi kurtarmıyor, illa Excel 2016 yüklü olacak. İşte böylesi durumlarda Excel’in kendi paketinden ziyade 3. parti kütüphanelere yönelmek gerekiyor. Bu konuda 3. parti birçok paket var fakat benim en çok kullandığım IronXL.Excel paketi. Bu paket ile Excel dosyası oluşturma, veri yazma, farklı formatlara dönüştürme, DataGrid’e aktarma gibi birçok işlem yapılabiliyor ve bu işlemleri yapabilmek için bilgisayarınızda Excel programının yüklü olması gibi bir şart yok. Hatta başka bir bilgisayarda projeyi çalıştırmak istediğinizde o bilgisayarda da Excel’in yüklü olması gerekmiyor.
install-package IronXL.Excel
Bu komutun ardından Nuget, IronXL.Excel paketini indirecek ve projeye dahil edecektir. Sonrasında paketi kullanabileceğiz.
Her ne kadar projeye paketi eklemiş olsakta kod yazacağımız dosyada bu paketi çağırmadığımız için kullanamayacağız. Kullanabilmek için dosyanın en başına gelerek
using IronXL;
using IronXL.Options;
kod satırlarını ekleyelim. Bunları da ekledikten sonra artık IronXL.Excel paketini kullanabiliriz.
IronXL.Excel paketi ile Excel işlemleri yapabilmek için öncelikle işlem yapacağımız Excel dosyasını belirtmemiz gerekiyor. Bunu da WorkBook sınıfı ile yapmamız ve bu sınıfı kullanabilmek için de yeni bir nesnesini türetmemiz gerekiyor. Yeni bir nesnesini WorkBook sınıfının constructor metodunu kullanarak türetebiliriz. Bu metodu string tipte Excel dosyasının yolunu parametre olarak istiyor. Örneğin masaüstünde olan dosya.docx adındaki bir Excel dosyasını kullanarak yeni bir WorkBook sınıfı nesnesi oluşturalım;
WorkBook workBook = new WorkBook("c:/users/kullanici/desktop/dosya.docx");
Excel dosyasını HTML’e dönüştürmek için WorkBook nesnesi altındaki ExportToHtml() fonksiyonu kullanılmakta ve bu fonksiyon string tipte dosyanın kaydedileceği yolu parametre olarak istiyor. Excel dosyasını HTML’e dönüştürerek parametre olarak gönderdiğiniz bu yola HTML dosyasını kaydediyor. Örneğin az önceki dosyayı masaüstünde dosya.html adıyla kaydedelim;
workBook.ExportToHtml("c:/users/kullanici/desktop/dosya.html");
Bu kodları yazıp çalıştırdığınız zaman Excel dosyanızın birebir aynısı olacak şekilde HTML dosyasına tablo olarak yazıldığını göreceksiniz. Fakat tablonun üstünde ve her bir satırın solunda sıra numaralarının yazıldığını göreceksiniz. Bu numaraları kaldırmanın yolu ExportToHtml() fonksiyonunun 2. bir kullanım şeklinde saklı. Bu kullanımında 2 tane parametre göndermemiz gerekiyor. Birincisi yine kaydedilecek HTML dosyasının yolu, ikincisi ise HtmlExportOptions sınıfı nesnesi olması gerekiyor. Bu sınıf ile Excel’den HTML’e dönüştürme yapılırken özelleştirmeler yapabiliyorsunuz ve kullanabilmek için constructor metodunu kullanmamız gerekiyor. Constructor metodu herhangi bir parametre almıyor fakat sınıf altındaki propertyleri doldurarak özelleştirmeler yapabiliyoruz. Bu propertyler OutputRowNumbers, OutputColumnHeaders, OutputHiddenRows, OutputHiddenColumns, OutputLeadingSpacesAsNonBreaking. OutputRowNumbers ile satır numaralarının bastırılıp bastırılmayacağını, OutputColumnHeaders ile sütun numaralarının (tablonun üstündeki numaralar) bastırılıp bastırılmayacağını, OutputHiddenRows ile gizli satırların gösterilip gösterilmeyeceğini, OutputHiddenColumns ile gizli sütunların gösterilip gösterilmeyeceğini, OutputLeadingSpacesAsNonBreaking ile de baştaki boşlukların silinip silinmeyeceğini ayarlayabiliyorsunuz ve her biri boolean tipte olması gerekiyor. Ön tanımlı olarak OutputRowNumbers, OutputLeadingSpacesAsNonBreaking ve OutputColumnHeader değerleri true, OutputHiddenRows ve OutputHiddenColumns değerleri false değerlerdedir, yani gizli satır ve sütunların görünmeyip satır ve sütun numaraları ile baştaki boşluklar görünecek şekildedir. Örneğin satır ve sütun numaralarını gizleyip, gizli satır ve sütunları gösterelim.
HtmlExportOptions options = new HtmlExportOptions() {
OutputRowNumbers = false,
OutputColumnHeaders = false,
OutputHiddenRows = true,
OutputHiddenColumns = true
};
HtmlExportOptions sınıfından yeni bir nesne türettiğimize göre artık Excel dosyasını HTML’e dönüştürebiliriz.
workBook.ExportToHtml("c:/users/kullanici/desktop/dosya.html", options);
Bu kodu çalıştırdıktan sonra artık tablonun üstündeki ve satırların yanındaki numaraların görünmediğini göreceksiniz.
Evet IronXL.Excel paketi ile Excel dosyasını HTML’e dönüştürme işlemi bu şekilde yapılmakta. Yazdığımız kodları daha toplu olması için aşağıya bırakıyorum.
WorkBook workBook = new WorkBook("c:/users/kullanici/desktop/dosya.docx");
// Doğrudan dönüştürme işlemi
workBook.ExportToHtml("c:/users/kullanici/desktop/dosya.html");
// Satır ve sütun numaralarının gizlenip, gizli satır ve sütunlar görünecek şekilde dönüştürme işlemi
HtmlExportOptions options = new HtmlExportOptions() {
OutputRowNumbers = false, // Satır numaralarını gizlemek için
OutputColumnHeaders = false, // Tablonun üstündeki sütun numaralarını gizlemek için
OutputHiddenRows = true, // Gizli satırları göstermek için
OutputHiddenColumns = true // Gizli sütunları göstermek için
};
workBook.ExportToHtml("c:/users/kullanici/desktop/dosya.html", options);
Tüm C# yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.