C# Veri Tablosundan Excel'e (Kod Örneği Eğitimi)
İki ana neden dolayı bir Excel elektronik tablosunu programatik olarak değiştirmek zor olabilir. İlk olarak, elektronik tablolarla uğraşırken, kullanıcılar tutarlı bir arayüz ve belge yapısını korumalıdır; bu her zaman basit değildir. İkincisi, özellikle karmaşık hesaplamalar söz konusu olduğunda, hangi kodun belirli durumlarda çalışacağını her zaman açık değildir. Programmatik olarak bir Excel dosyası oluşturmanın zor olmasının birçok nedeni vardır. Programcılar, önce Excel belgesindeki verileri okunabilir bir formata dönüştürmeli, ardından verileri ayrıştırmalı ve tekrar ayrıştırmalıdır; bu, daha da zordur. Bu soruna bir çözüm buldum. IronXL .NET Excel kütüphanesini kullanarak herhangi bir sorun yaşamadan bir Excel dosyası oluşturmayı ve bir DataTable'ı Excel sayfasına programatik olarak aktarmayı öğreteceğim. Başlayalım:
C#'da DataTable'ı Excel'e Nasıl Aktarırsınız?
- DataTable'ı Excel'e aktarmak için C# kütüphanesini yükleyin
- Yeni bir Excel çalışma kitabı oluşturun ve çalışma sayfasına erişin
- C#'da
DataTableiçindekiDataRow'nun üzerinden yineleme yapın CelliçindekiValueözelliğine erişin veDataRow'dan verilerle çalışma sayfasını doldurun- Excel elektronik tablosunu istenilen konuma dışa aktarın
IronXL Özellikleri
- IronXL, Windows, Linux ve macOS dahil olmak üzere çeşitli İşletim Sistemlerinde çalışır.
- Neredeyse tüm .NET Çerçeveleri, Konsol, Windows Forms Uygulaması ve Web Uygulaması dahil olmak üzere IronXL tarafından desteklenir.
- IronXL, Excel dosyalarını okumayı kolay ve basit hale getirir.
- IronXL ile, XLSX dosyaları, XLS, CSV, TSV, XLST, XLSM dosyaları gibi Excel dosya formatlarını veri tablolarını dışa aktarma, veri tablolarını dışa aktarma ve Excel dosyası okuma gibi işlemleri çalıştırabiliriz.
- IronXL, XLS, CSV, TSV, JSON, XLSX ve diğerleri dahil olmak üzere çeşitli uzantılarla dosyaları kaydetmemizi ve dışa aktarmamızı sağlar.
- Excel formülleri IronXL tarafından oluşturulabilir.
- Metin, Numaralar, Formüller, Tarihler, Para Birimi, Yüzdeler ve diğer Excel hücre veri formatları IronXL tarafından desteklenir.
- Ayrıca Aralıklar, Sütunlar ve Satır gibi birçok sıralama seçenekleri sunar.
- IronXL'de hücre stillendirmesi yazı tipi, boyut, arka plan deseni, kenarlık ve hizalama gibi özellikleri içerir.
- IronXL kullanarak bir Excel dosyasından veri okuyabilir ve dışa aktarabiliriz.
- IronXL, sunucunuza Excel veya Interop yüklemeyi gerektirmez. IronXL API, Microsoft Office, Interop ve Excel'e göre daha hızlı ve kullanımı daha kolaydır.
1 Visual Studio'da Yeni Bir Proje Oluşturma
IronXL kutuphanesini kullanmak icin Visual Studio'da bir .NET projesi oluşturmamiz gerekiyor. Visual Studio'nun herhangi bir surumunu kullanabilirsiniz, ancak en son surumu kullanmanız önerilir. Gereksinimleriniz dogrultusunda Windows Forms gibi bir uygulama veya farklı proje şablonları oluşturabilirsiniz. Bu eğitim için basitlik açısından Konsol Uygulamasını kullanacağım.
Visual Studio'da yeni bir proje arayüzü oluşturun
Sonraki adımda, proje adı ve projenin konumunu girin.
Yeni proje oluşturma sırasında yapılandırma adımı
Sonra, aşağıdaki çerçeveyi seçin. Bu projede .NET Core 6 kullanacağız.
.Net Framework seçimi kullanıcı arayüzü
Uygulama çözümü oluşturduğunda, kod yazabileceğiniz ve uygulamayı oluşturup/çalıştırabileceğiniz program.cs dosyasını açacaktır.
Yeni projede boş program.cs dosyası
Sonraki adımda, kodu test etmek için kutuphaneyi ekleyebiliriz.
2 IronXL Kutuphanesini Yükleme
IronXL Kutuphanesi dört şekilde indirilebilir ve yüklenebilir.
Bunlar su sekildedir:
- Visual Studio Kullanarak
- Visual Studio Komut Satırı'nı kullanarak.
- NuGet web sitesinden doğrudan indirilebilir.
- IronXL web sitesinden doğrudan indirilebilir.
2.1 Visual Studio Kullanarak
IronXL kutuphanesini NuGet Paket Yöneticisi kullanarak yükleyebiliriz. Önce NuGet Paket yöneticisini açmalı ve ardından gezinti sekmesinde IronXL'i aramalısınız. Sonuçlardan IronXL'i seçin ve yükleyin. Bundan sonra, projemiz IronXL kutuphanesini kullanmaya hazır olacaktır.
Aşağıdaki ekran görüntüsü, Visual Studio'da NuGet Paket Yöneticisini nasıl açabileceğimizi göstermektedir.
Visual Studio'da NuGet Paket Yöneticisine gidin
Arama sonuçlarında IronXL:
IronXL kutuphanesini arama
2.2 Visual Studio Komut Satırı Kullanarak
Birçok insan işlemleri gerçekleştirmek için bir Konsol kullanmayı sevmektedir. Bu yüzden Konsol ile de yükleyebiliriz. IronXL'i komut satırı aracılığıyla yüklemek için aşağıdaki adımları izleyin.
- Visual Studio'da Araçlar -> NuGet Paket Yöneticisi -> Paket Yöneticisi Konsolu'na gidin.
- Paket Yöneticisi Konsol sekmesine şu satırı girin:
Install-Package IronXl.Excel
Şimdi paket mevcut projeye indirilecek/kurulacak ve kullanıma hazır olacaktır.
Konsol aracılığıyla IronXL paketini yükle
2.3 NuGet web sitesinden doğrudan indirerek
Üçüncü yol, NuGet paketini doğrudan web sitesinden indirmektir.
- NuGet resmi IronXL paket sayfasına gidin.
- Sağ taraftaki menüden indirme paketi seçeneğini seçin.
- Indirilen paketi çift tıklayın. Otomatik olarak yüklenecektir.
- Sonra, çözümü yeniden yükleyin ve projede kullanmaya başlayın.
2.4 IronXL web sitesinden doğrudan indirerek
Web sitesinden doğrudan en son paketi indirmek için bağlantıya tıklayın. İndirildikten sonra paketin projeye eklenmesi için aşağıdaki adımları izleyin.
- Çözüm penceresinden projeyi sağ tıklayın.
- Ardından, başvuru seçeneklerini seçin ve indirilen başvurunun konumunu gezinin.
- Sonra, başvuruyu eklemek için tamam'a tıklayın.
3 IronXL kullanarak Datatable'ı Excel Dosyasına Aktar
IronXL, Az adım ile DataTables'ı kolayca Excel dosyalarına aktarmamıza izin verir.
Öncelikle, aşağıdaki kod ekran görüntüsünde olduğu gibi IronXL'nin ad alanını dahil etmeliyiz. Eklendikten sonra, kodumuzda IronXL sınıflarını ve yöntemlerini kullanabiliriz.
Kütüphaneyi kullanmadan önce IronXL'nin namespace dahil edin
IronXL, Excel dosyaları oluşturmamıza ve bunları çalışma kitabı nesnelerine dönüştürmemize izin verir. Bunları nesnelere dönüştürdükten sonra, çeşitli türde işlemler gerçekleştirebiliriz. Aşağıdaki örnek kodda, bir DataTable'ı Excel çalışma sayfasına dönüştüreceğiz ve ardından bir Excel dosyası oluşturabiliriz.
using System;
using System.Data;
using IronXL;
public class ExcelExporter
{
/// <summary>
/// Exports a DataTable to an Excel file using IronXL.
/// </summary>
/// <param name="filePath">The file path where the Excel file will be saved.</param>
public static void ExportToExcel(string filePath)
{
// Creating a DataTable with a single column
DataTable table = new DataTable();
table.Columns.Add("DataSet_Animal", typeof(string));
// Adding some rows to the DataTable
table.Rows.Add("Lion");
table.Rows.Add("Tiger");
table.Rows.Add("Cat");
table.Rows.Add("Goat");
table.Rows.Add("Panther");
table.Rows.Add("Fox");
table.Rows.Add("Cheetah");
// Creating a new Excel Workbook
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
// Accessing the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;
// Iterating through the DataTable rows
int rowCount = 1;
foreach (DataRow row in table.Rows)
{
// Adding each DataRow's first column value to the corresponding cell in the worksheet
ws["A" + rowCount].Value = row[0].ToString();
rowCount++;
}
// Saving the workbook to a CSV file at specified file path with ";" as delimiter
wb.SaveAsCsv(filePath, ";");
}
}
using System;
using System.Data;
using IronXL;
public class ExcelExporter
{
/// <summary>
/// Exports a DataTable to an Excel file using IronXL.
/// </summary>
/// <param name="filePath">The file path where the Excel file will be saved.</param>
public static void ExportToExcel(string filePath)
{
// Creating a DataTable with a single column
DataTable table = new DataTable();
table.Columns.Add("DataSet_Animal", typeof(string));
// Adding some rows to the DataTable
table.Rows.Add("Lion");
table.Rows.Add("Tiger");
table.Rows.Add("Cat");
table.Rows.Add("Goat");
table.Rows.Add("Panther");
table.Rows.Add("Fox");
table.Rows.Add("Cheetah");
// Creating a new Excel Workbook
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
// Accessing the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;
// Iterating through the DataTable rows
int rowCount = 1;
foreach (DataRow row in table.Rows)
{
// Adding each DataRow's first column value to the corresponding cell in the worksheet
ws["A" + rowCount].Value = row[0].ToString();
rowCount++;
}
// Saving the workbook to a CSV file at specified file path with ";" as delimiter
wb.SaveAsCsv(filePath, ";");
}
}
Imports System
Imports System.Data
Imports IronXL
Public Class ExcelExporter
''' <summary>
''' Exports a DataTable to an Excel file using IronXL.
''' </summary>
''' <param name="filePath">The file path where the Excel file will be saved.</param>
Public Shared Sub ExportToExcel(ByVal filePath As String)
' Creating a DataTable with a single column
Dim table As New DataTable()
table.Columns.Add("DataSet_Animal", GetType(String))
' Adding some rows to the DataTable
table.Rows.Add("Lion")
table.Rows.Add("Tiger")
table.Rows.Add("Cat")
table.Rows.Add("Goat")
table.Rows.Add("Panther")
table.Rows.Add("Fox")
table.Rows.Add("Cheetah")
' Creating a new Excel Workbook
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
' Accessing the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet
' Iterating through the DataTable rows
Dim rowCount As Integer = 1
For Each row As DataRow In table.Rows
' Adding each DataRow's first column value to the corresponding cell in the worksheet
ws("A" & rowCount).Value = row(0).ToString()
rowCount += 1
Next row
' Saving the workbook to a CSV file at specified file path with ";" as delimiter
wb.SaveAsCsv(filePath, ";")
End Sub
End Class
Yukarıdaki kodda, Veri Tablosunu bir Excel dosyasına aktarıyoruz. İlk olarak, bir DataTable oluşturuyoruz ve ardından sütun başlıkları oluşturuyoruz. Sütunları oluşturduktan sonra, satırları birer birer ekliyoruz. Satırlar eklendikten sonra, WorkBook nesnesini oluşturuyoruz. Nesneyi kullanarak verileri Excel sayfasına ekleyebilir ve ardından verileri konuma kaydedebiliriz. Bir çalışma sayfası oluşturmaya imkan veren WorkSheet nesnesini oluşturuyoruz ve ardından bunu WorkBook nesnesine ekleyebiliriz.
Veri Tablosu değerlerini birer birer okumak için bir foreach döngüsü kullanıyoruz ve ardından değeri çalışma sayfasına ekliyoruz. Tüm değerler çalışma sayfasına eklendikten sonra, bunları SaveAsCsv adlı yöntemle bir CSV dosyasına kaydediyoruz — bir parametre olarak ayırıcı ve dosya adını konumla birlikte geçmemiz gerekiyor. Ayırıcı, gerekliyse görmezden gelebileceğimiz bir isteğe bağlı parametredir.
Visual Studio'da tamamlanmış kod
Yukarıda, .NET Core 6'da kullandığımız kodun tam ekran görüntüsü bulunmaktadır.
Sonuç:
Microsoft Excel'de dosya açıldığında elde edilen sonuç
Yukarıda, çalıştırılan örnek kodun sonucu bulunmaktadır. Ekran görüntüsünde, DataTable'da mevcut olan tüm veriler yeni oluşturulan Excel sayfasına birer birer eklenmiştir.
4 Sonuç
IronXL, en yaygın kullanılan Excel kütüphanelerinden biridir. Başka herhangi bir üçüncü taraf kütüphaneye bağlı değildir. Bağımsızdır ve MS Excel'in yüklenmesi gerekmez. Birden çok platformda çalışır. IronXL için giriş fiyatı $799'dan başlıyor. Ayrıca, ürün desteği ve güncellemeleri için bir yıllık ücret seçeneği sunmaktadır. IronXL, ekstra bir maliyetle telif ücretsiz yeniden dağıtım kapsamı sunmaktadır. Fiyat detayları hakkında daha fazla bilgi için, lisans sayfamızı ziyaret edin.
Sıkça Sorulan Sorular
Bir DataTable'ı C#'te bir Excel dosyasına nasıl aktarabilirim?
IronXL'nin WorkBook ve WorkSheet sınıflarını kullanarak bir DataTable'ı Excel dosyasına aktarabilirsiniz. Bir DataTable oluşturun, satırlarında dolaşın ve IronXL API'sini kullanarak Excel dosyasını verilerle doldurun.
Excel işlemleri için IronXL kullanmanın Interop'a göre avantajları nelerdir?
IronXL, Microsoft Interop'tan daha hızlı ve daha verimlidir, Microsoft Excel'in yüklenmesini gerektirmez ve birden fazla platform ve dosya formatını destekler.
IronXL, Excel dosyaları için hangi dosya formatlarını destekler?
IronXL, XLSX, XLS, CSV, TSV, XLST ve XLSM dahil olmak üzere çeşitli Excel dosya formatlarını destekler, bu da esnek dosya manipülasyonuna olanak tanır.
IronXL, veri aktarımı sırasında Excel formüllerini işleyebilir mi?
Evet, IronXL, bir DataTable'dan Excel dosyasına veri aktarırken karmaşık hesaplamaların korunmasını sağlar.
IronXL ile uyumlu olan işletim sistemleri nelerdir?
IronXL, Windows, Linux ve macOS dahil olmak üzere birden fazla işletim sistemiyle uyumludur, bu da çapraz platform geliştirme imkanı sunar.
IronXL'i kullanmak için Microsoft Excel yüklenmiş olması gerekli mi?
Hayır, IronXL, Microsoft Excel'den bağımsız çalışır, Excel dosyalarıyla çalışmanızı sağlayarak sunucunuzda Excel yüklü olmadan çalışmanıza olanak tanır.
C# projesinde IronXL nasıl yüklenir?
Visual Studio'daki NuGet Paket Yöneticisi ile, komut satırını kullanarak veya doğrudan NuGet veya IronXL web sitelerinden indirerek IronXL'yi yükleyebilirsiniz.
IronXL'nin desteklediği .NET çerçeveleri nelerdir?
IronXL, Konsol, Windows Forms Uygulaması ve Web Uygulaması dahil geniş bir yelpazede .NET çerçevelerini destekler, bu da farklı türdeki projeler için uygundur.
IronXL, Excel dosyalarındaki hücrelerin stil ve formatlamasını destekler mi?
Evet, IronXL, Excel dosyalarının görünümünü geliştirmek için yazı tipleri, renkler ve kenarlıklar gibi çeşitli hücre stil ve formatlama seçenekleri sunar.
IronXL, programatik olarak Excel dosyası oluşturma sürecini nasıl basitleştirir?
IronXL, Excel dosyalarını oluşturma, değiştirme ve dışa aktarma işlemlerini kolaylaştıran kullanıcı dostu bir API sunarak, diğer yöntemlerin gerektirdiği arayüz ve yapılarla ilgili karmaşıklıkları ortadan kaldırır.




