Altbilgi içeriğine atla
DIğER BILEşENLERLE KARşıLAşTıRıN

EPPlus Excel'i DataTable C#'e Okuma (IronXL Eğitimi)

C#'de DataTable içine Excel verilerini okuyabilecek bir Excel kütüphanesi mi arıyorsunuz?

C#'de DataTable içine Excel dosyalarını okuma, veri analizi ve raporlama, veritabanlarına veri aktarma, veri taşıma, veri doğrulama ve temizleme, diğer sistemlerle entegrasyon, otomasyon ve toplu işleme gibi çeşitli endüstriler ve alanlarda birçok pratik uygulamaya sahiptir.

Bu makalede, Excel verilerini ve Excel dosyalarını DataTable içine okumak için bu özelliği sağlayan .NET Core için C#'de iki farklı Excel kütüphanesini tartışacak ve karşılaştıracağız. Kütüphaneler şunlardır

  1. EPPlus
  2. IronXL

1. EPPlus kütüphanesi

EPPlus, C# ile Excel dosyalarını oluşturmak ve düzenlemek için güçlü bir açık kaynak kütüphanesidir. Bu, geliştiricilerin Excel elektronik tablolarını programlı olarak oluşturmalarına, okumalarına ve değiştirmelerine olanak tanıyan, Microsoft Office veya Excel'in sunucu veya istemci makinelerine kurulmasını gerektirmeyen basit ve sezgisel bir API sağlar. EPPlus ile Excel dosyaları üzerinde kolayca çalışma sayfaları oluşturabilir, veri ekleyebilir, biçimlendirme uygulayabilir, grafikler oluşturabilir ve diğer işlemleri gerçekleştirebilirsiniz. Hem eski .xls formatını hem de yeni .xlsx formatını destekler ve verimli performans ve bellek yönetimi sağlar. Dinamik raporlar oluşturmanız, veri içe/dışa aktarmanız veya Excel ile ilgili görevleri otomatikleştirmeniz gereksin, EPPlus, C# uygulamalarınızda Excel dosyası işlemi yapmayı kolaylaştıracak kapsamlı özellikler ve yetenekler sunar.

2. IronXL

IronXL, geliştiricilere .NET uygulamaları içerisinde Excel dosyalarını zahmetsizce okuma, yazma ve manipüle etme yeteneği sağlayan güçlü ve çok yönlü bir kütüphanedir. IronXL, kullanıcı dostu ve kapsamlı API'si ile elektronik tablolarla çalışmanın karmaşık sürecini basitleştirir, geliştiricilere verileri sorunsuz bir şekilde çıkarmayı, hesaplamalar yapmayı, grafikler oluşturmayı ve raporlar hazırlamayı kolaylaştırır. Veri içe/dışa aktarma görevlerini otomatikleştirmek, veri analizi yapmak veya dinamik Excel şablonları oluşturmak olsun, IronXL, Excel verilerini işlerken doğruluk ve güvenilirlik sağlarken geliştiricilerin değerli zaman ve çabasını tasarruf eden güçlü bir çözüm sunar. Kesintisiz entegrasyonu, kapsamlı belgeleri ve geniş özellik yelpazesi ile IronXL, .NET framework'te Excel dosya manipülasyonu ile ilgili zorlukları aşmak isteyen geliştiriciler için güvenilir ve verimli bir araç olarak öne çıkmaktadır.

3. EPPlus kütüphanesini yüklemek

C# projenize EPPlus kütüphanesini kurmak için, öncelikle Visual Studio'da yeni bir konsol tabanlı proje oluşturmalısınız. Ardından, NuGet Package Manager kullanarak kolayca yükleyebilirsiniz.

Yeni proje oluşturulduktan sonra, Araçlar menüsüne gidin ve NuGet Paket Yöneticisi'nin üzerine gelin, ardından "Çözüm için NuGet Paketlerini Yönet" seçeneğini seçin.

Yeni bir pencere açılacak. Bu yeni pencerede, "Göz at" seçeneğine gidin ve "EPPlus"u arayın. Paketlerin bir listesi görünecek ve en son kararlı sürümü seçmelisiniz. Ardından, EPPlus kütüphanesini yüklemek için sağ taraftaki "Yükle" butonuna tıklayın.

İşte bu kadar, EPPlus projenize eklenecektir.

4. IronXL'nin Kurulumu

IronXL'i kurmanın birçok yöntemi vardır, ancak bu bölümde sadece NuGet Paket Yöneticisini kullanarak IronXL kurulumunu ele alacağız.

Tıpkı bölüm 3'te olduğu gibi, yeni bir proje oluşturun ve "Araçlar" kısmına giderek çözümler için NuGet Paket Yöneticisi'ni açın.

Yeni pencerede, arama çubuğuna "IronXL" anahtar kelimesini girin. Bir liste görünecek ve yüklemek istediğiniz IronXL paketini seçebilirsiniz. Ardından, projenize IronXL'i kurmak için "Install" butonuna tıklayın.

Artık IronXL kullanıma hazır.

5. Excel Dosyalarını ve Verileri EPPlus Kütüphanesi Kullanarak DataTable'a Okuma

Bu bölümde, C# EPPlus paket Excel kütüphanesini kullanarak DataTable olarak Excel okuma kodunu inceleyeceğiz.

Bir DataTable olarak okumak için bir örnek Excel dosyasına ihtiyacımız var. Bu amaçla, örnek bir Excel dosyası oluşturacağız.

Aşağıda, Excel dosyasını DataTable olarak okuma kodu bulunmaktadır.

using OfficeOpenXml;
using System;
using System.Data;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var path = @"sample.xlsx"; // Specify the path to your Excel file
        var data = ExcelDataToDataTable(path, "Table");

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in data.Rows)
        {
            foreach (var wsrow in row.ItemArray)
            {
                Console.Write(wsrow + " ");
            }
            Console.WriteLine();
        }
    }

    /// <summary>
    /// Converts Excel sheet data to a DataTable.
    /// </summary>
    /// <param name="filePath">The path to the Excel file.</param>
    /// <param name="sheetName">The name of the worksheet to read from.</param>
    /// <param name="hasHeader">Indicates whether the Excel sheet has a header row.</param>
    /// <returns>DataTable containing Excel data.</returns>
    public static DataTable ExcelDataToDataTable(string filePath, string sheetName, bool hasHeader = true)
    {
        DataTable dt = new DataTable();
        var fi = new FileInfo(filePath);

        // Check if the file exists
        if (!fi.Exists)
            throw new Exception("File " + filePath + " does not exist.");

        // Set the license context for EPPlus
        ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

        // Load the Excel file into an EPPlus ExcelPackage
        using (var xlPackage = new ExcelPackage(fi))
        {
            // Get the specified worksheet from the workbook
            var worksheet = xlPackage.Workbook.Worksheets[sheetName];

            // Convert the worksheet to a DataTable, optionally using the first row as column names
            dt = worksheet.Cells[1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
            {
                c.FirstRowIsColumnNames = hasHeader;
            });
        }

        return dt;
    }
}
using OfficeOpenXml;
using System;
using System.Data;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        var path = @"sample.xlsx"; // Specify the path to your Excel file
        var data = ExcelDataToDataTable(path, "Table");

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in data.Rows)
        {
            foreach (var wsrow in row.ItemArray)
            {
                Console.Write(wsrow + " ");
            }
            Console.WriteLine();
        }
    }

    /// <summary>
    /// Converts Excel sheet data to a DataTable.
    /// </summary>
    /// <param name="filePath">The path to the Excel file.</param>
    /// <param name="sheetName">The name of the worksheet to read from.</param>
    /// <param name="hasHeader">Indicates whether the Excel sheet has a header row.</param>
    /// <returns>DataTable containing Excel data.</returns>
    public static DataTable ExcelDataToDataTable(string filePath, string sheetName, bool hasHeader = true)
    {
        DataTable dt = new DataTable();
        var fi = new FileInfo(filePath);

        // Check if the file exists
        if (!fi.Exists)
            throw new Exception("File " + filePath + " does not exist.");

        // Set the license context for EPPlus
        ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

        // Load the Excel file into an EPPlus ExcelPackage
        using (var xlPackage = new ExcelPackage(fi))
        {
            // Get the specified worksheet from the workbook
            var worksheet = xlPackage.Workbook.Worksheets[sheetName];

            // Convert the worksheet to a DataTable, optionally using the first row as column names
            dt = worksheet.Cells[1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column].ToDataTable(c =>
            {
                c.FirstRowIsColumnNames = hasHeader;
            });
        }

        return dt;
    }
}
Imports OfficeOpenXml
Imports System
Imports System.Data
Imports System.IO

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim path = "sample.xlsx" ' Specify the path to your Excel file
		Dim data = ExcelDataToDataTable(path, "Table")

		' Iterate through each row in the DataTable and print its contents
		For Each row As DataRow In data.Rows
			For Each wsrow In row.ItemArray
				Console.Write(wsrow & " ")
			Next wsrow
			Console.WriteLine()
		Next row
	End Sub

	''' <summary>
	''' Converts Excel sheet data to a DataTable.
	''' </summary>
	''' <param name="filePath">The path to the Excel file.</param>
	''' <param name="sheetName">The name of the worksheet to read from.</param>
	''' <param name="hasHeader">Indicates whether the Excel sheet has a header row.</param>
	''' <returns>DataTable containing Excel data.</returns>
	Public Shared Function ExcelDataToDataTable(ByVal filePath As String, ByVal sheetName As String, Optional ByVal hasHeader As Boolean = True) As DataTable
		Dim dt As New DataTable()
		Dim fi = New FileInfo(filePath)

		' Check if the file exists
		If Not fi.Exists Then
			Throw New Exception("File " & filePath & " does not exist.")
		End If

		' Set the license context for EPPlus
		ExcelPackage.LicenseContext = LicenseContext.NonCommercial

		' Load the Excel file into an EPPlus ExcelPackage
		Using xlPackage = New ExcelPackage(fi)
			' Get the specified worksheet from the workbook
			Dim worksheet = xlPackage.Workbook.Worksheets(sheetName)

			' Convert the worksheet to a DataTable, optionally using the first row as column names
			dt = worksheet.Cells(1, 1, worksheet.Dimension.End.Row, worksheet.Dimension.End.Column).ToDataTable(Sub(c)
				c.FirstRowIsColumnNames = hasHeader
			End Sub)
		End Using

		Return dt
	End Function
End Class
$vbLabelText   $csharpLabel

Yukarıdaki kod, dosya yolu ve sayfa adı gibi giriş parametrelerini alıp bir DataTable olarak çıktı döndüren bir metot tanımlar. Ayrıca DataTable'un her bir satırına iterasyon yaparak verileri yazdırır.

5.1. Çıktı

Excel dosyasının içeriği konsola yazdırılacaktır.

6. IronXL kullanarak Excel Dosyalarını DataTable olarak Okuma

İronXL kullanarak bir Excel sayfasını DataTable olarak dönüştürmek ve okumak oldukça kolaydır ve sadece birkaç satır kod gerektirir. Ayrıca, önceki Excel dosyasını girdi olarak kullanacağız.

Aşağıdaki kod örneği, yukarıdaki kod ile aynı işlevi gerçekleştirir, ancak IronXL kullanarak.

using IronXL;
using System;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        // Load the Excel file into an IronXL WorkBook
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Get the default worksheet from the workbook
        WorkSheet workSheet = workBook.DefaultWorkSheet;

        // Convert the worksheet to a DataTable, specifying that the first row contains column names
        DataTable table = workSheet.ToDataTable(true);

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in table.Rows)
        {
            foreach (var cell in row.ItemArray)
            {
                Console.Write(cell + " ");
            }
            Console.WriteLine();
        }
    }
}
using IronXL;
using System;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        // Load the Excel file into an IronXL WorkBook
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Get the default worksheet from the workbook
        WorkSheet workSheet = workBook.DefaultWorkSheet;

        // Convert the worksheet to a DataTable, specifying that the first row contains column names
        DataTable table = workSheet.ToDataTable(true);

        // Iterate through each row in the DataTable and print its contents
        foreach (DataRow row in table.Rows)
        {
            foreach (var cell in row.ItemArray)
            {
                Console.Write(cell + " ");
            }
            Console.WriteLine();
        }
    }
}
Imports IronXL
Imports System
Imports System.Data

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Load the Excel file into an IronXL WorkBook
		Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

		' Get the default worksheet from the workbook
		Dim workSheet As WorkSheet = workBook.DefaultWorkSheet

		' Convert the worksheet to a DataTable, specifying that the first row contains column names
		Dim table As DataTable = workSheet.ToDataTable(True)

		' Iterate through each row in the DataTable and print its contents
		For Each row As DataRow In table.Rows
			For Each cell In row.ItemArray
				Console.Write(cell & " ")
			Next cell
			Console.WriteLine()
		Next row
	End Sub
End Class
$vbLabelText   $csharpLabel

Yukarıdaki kod örneğinde, Excel dosyasını yükleyip workSheet.ToDataTable(true) metodunu kullanarak DataTable'a dönüştürüyoruz.

6.1 Çıktı

Excel dosyasının içeriği konsola yazdırılacaktır.

7. Sonuç

Sonuç olarak, C#'de Excel dosyalarını okuyup DataTable'lara dönüştürme söz konusu olduğunda, hem EPPlus hem de IronXL güçlü özellikler sunan ve süreci basitleştiren mükemmel kütüphanelerdir.

EPPlus, Excel elektronik tablolarını programlı olarak oluşturmak, okumak ve değiştirmek için basit bir API sağlayan açık kaynaklı bir kütüphanedir. Hem .xls hem de .xlsx formatlarını destekler ve verimli performans ile bellek yönetimi sunar.

Öte yandan, IronXL, geliştiricilerin .NET uygulamalarında Excel dosyaları ile kolayca çalışmasını sağlayan çok yönlü bir kütüphanedir. Veri çıkarmak, hesaplamalar yapmak, grafikler oluşturmak ve raporlar oluşturmak için sezgisel bir API ve kapsamlı özellikler sunar. IronXL, veri içe/dışa aktarma, veri analizi ve dinamik şablon oluşturma gibi karmaşık Excel dosyası işleme görevlerini basitleştirir.

IronXL ve EPPlus'un kod örneklerini karşılaştırdığımızda, EPPlus kodunun oldukça uzun, karmaşık ve okunması zor olduğunu görüyoruz. Öte yandan, IronXL kodu oldukça basit ve okunması kolaydır. IronXL varsayılan çalışma sayfasını kullanır, ancak EPPlus'ta çalışma sayfasının adını vermeniz gerekir; aksi takdirde bir hata alırsınız.

Özetle, Excel dosyalarını manipüle etmek ve Excel dosyalarını DataTable olarak okumak için EPPlus yerine IronXL'i tavsiye ederim. Ayrıca, IronXL, basit kodlarla Excel dosyalarını işlerken EPPlus'tan çok daha fazla özellik sunar. Daha fazla IronXL eğitimi için lütfen aşağıdaki linki ziyaret edin.

Lütfen dikkate alınEPPlus, ilgili sahibine kayıtlı bir ticari markadır. Bu site, EPPlus ile ilgili değildir, onaylanmamıştır veya bunun tarafından sponsor edilmemiştir. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.

Sıkça Sorulan Sorular

Excel verilerini C#'da bir DataTable'a nasıl okuyabilirim?

IronXL'yi kullanarak, Workbook.Load() ile Excel çalışma kitabını yükleyip, sayfa erişimi yaparak ve ToDataTable()'ı kullanarak verileri dönüştürerek Excel verilerini bir DataTable'a okuyabilirsiniz.

Excel manipülasyonu için IronXL kullanmanın avantajları nelerdir?

IronXL, Excel dosyası manipülasyonunu basitleştiren basit ve sezgisel bir API sunar. Veri çıkarımı, hesaplamalar, grafik oluşturma ve rapor üretimi gibi özellikleri içerecek şekilde kapsamlı bir çözüm haline getirir.

IronXL, .xls ve .xlsx dosya formatlarını destekliyor mu?

Evet, IronXL hem .xls hem de .xlsx dosya formatlarını destekler, farklı türde Excel dosyalarıyla çalışmada esneklik sağlar.

IronXL'ı Microsoft Office yüklemeden kullanabilir miyim?

Evet, IronXL, cihazınıza Microsoft Office veya Excel yüklemenize gerek kalmadan Excel dosyalarını manipüle etmek için kullanılabilir.

IronXL'yi bir .NET projesine nasıl kurarım?

IronXL'yi kurmak için .NET projenizdeki NuGet Paket Yöneticisini açın, 'IronXL' araması yapın ve paketi kurun. Bu, IronXL'yi projenize ekleyecek ve özelliklerini kullanmaya başlamanızı sağlayacaktır.

Excel dosyalarını bir DataTable'a okuma konusunda yaygın sorunlar nelerdir ve bunlar nasıl çözülür?

Yaygın sorunlar, yanlış dosya yolları, desteklenmeyen formatlar veya yanlış formatlanmış veriler olabilir. Dosya yolunun doğru olduğundan, formatın desteklendiğinden ve verinin düzgün olduğundan emin olun. IronXL, bu sorunları çözmeye yardımcı olacak açık hata mesajları sağlar.

Excel dosyalarını bir DataTable'a okuma konusunda IronXL, EPPlus ile nasıl karşılaştırılır?

IronXL, kullanım kolaylığı ve kapsamlı özellikleri ile dikkat çekerken, EPPlus da etkili olsa da uygulaması daha karmaşık olabilir. IronXL, geliştiriciler için daha basit bir API sunar.

IronXL büyük Excel dosyaları için uygun mu?

Evet, IronXL büyük Excel dosyalarını etkin bir şekilde işlemek üzere tasarlanmıştır, dosya manipülasyonu sırasında performansı ve bellek kullanımını optimize eden özellikler sunar.

IronXL veri analizi ve raporlaması için kullanılabilir mi?

Kesinlikle, IronXL veri analizi ve raporlaması için oldukça uygun, veri çıkarımı ve manipülasyonu, grafik oluşturma ve rapor oluşturma için güçlü özellikler sunar.

Geliştiricilere yönelik IronXL'nin sağladığı temel özellikler nelerdir?

IronXL'nin anahtar özellikleri arasında sorunsuz veri çıkarımı, güçlü hesaplama yetenekleri, kolay grafik oluşturma, etkili rapor üretimi ve geniş Excel dosya formatları desteği bulunur.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara