Altbilgi içeriğine atla
IRONXL KULLANARAK

C#'ta 'DataTable' CSV'ye Nasıl Dışa Aktarılır

IronXL, Microsoft Excel kurulumu gerekmeden C# ile kesintisiz DataTable'den CSV'ye dönüştürme sağlar. Bu bağımsız .NET kutuphanesi, geliştiriciler için veri dışa aktarmayı kolaylaştırarak, özel yapılar ve ayırıcılarla DataTables'yi otomatik olarak CSV dosyalarına dönüştüren basit bir API sunar.

IronXL, geliştiricilerin C# .NET teknolojilerinde Microsoft Excel belgeleri ile etkileşime gecmesine olanak tanıyan popüler bir kutuphanedir ve CSV dosyalarını da dahil eder, Microsoft Excel yüklü olmasına gerek yoktur. Kayıtlı türlerin otomatik olarak CSV dosyalarına dönüştürülmesini ve özel yapılarla CSV dosyalarının yazılmasını saglar.

IronXL Kutuphanesi Hangi Özellikleri Sunar?

Microsoft Excel belgeleri, C# IronXL .NET kutuphanesi kullanılarak okunabilir ve CSV dosyalarına dönüştürülebilir. IronXL, farklı e-tablo formatlarını okuyabilen bağımsız bir .NET yazılım kutuphanesidir. Bu, Microsoft.Office.Interop.Excel'ye bağımlı değildir veya Microsoft Excel yüklemesi gerektirmez.

IronXL'nin kullanıcı dostu C# API'si yardımıyla .NET ortamında Excel e-tablo dosyalarını hızla okuyabilir, değiştirebilir ve oluşturabilirsiniz. IronXL, .NET Core, .NET Framework, Xamarin, Mobil, Linux, macOS ve Azure ile tamamen uyumludur.

  • C# için önde gelen .NET Core ve .NET Framework Excel e-tablo kütüphaneleri arasında IronXL bulunur.
  • Hemen hemen tüm .NET Framework'ler desteklenir; bu, Konsol, Windows Formları ve Web Uygulamalarını içerir.
  • IronXL, Windows, Linux ve macOS işletim sistemlerinde çalışır.
  • IronXL, Excel dosyalarını okuma işlemini basit ve hızlı hale getirir.
  • IronXL, çok sayıda Excel formatını destekler: XLSX, XLS, CSV, TSV, XLST ve XLSM dosyaları.
  • IronXL, dosyaları XLS, CSV, TSV, JSON ve XML dahil olmak üzere çeşitli formatlara aktarır.
  • IronXL, Excel hesaplamaları oluşturur ve formülleri destekler.
  • IronXL, tekst, sayılar, tarihler, para birimleri ve yüzdeler dahil olmak üzere Excel sütun veri formatlarını destekler.

Daha fazla ayrıntı için IronXL dokümantasyon özetine bakın.

Visual Studio'da Yeni Bir Proje Nasıl Oluşturabilirim?

IronXL framework'ü kullanılmadan önce Visual Studio'da bir .NET projesi oluşturulmalıdır. Herhangi bir Visual Studio sürümü çalışacaktır, ancak en son olanı önerilir. İhtiyaçlarınıza bağlı olarak bir Windows Forms uygulaması veya farklı proje şablonları oluşturabilirsiniz. Bu eğitici kılavuzda işleri basitleştirmek için Konsol Uygulaması kullanılacaktır.

Visual Studio'nun Yeni Proje Oluşturma penceresi, Konsol Uygulaması, ASP.NET Core Web Uygulaması ve Blazor Sunucu Uygulaması gibi çeşitli .NET proje şablonlarını gösteriyor. Visual Studio'da yeni proje oluşturma

Bundan sonra, projenin adını ve konumunu girin.

Visual Studio proje yapılandırma penceresi, projenin Windows'u hedefleyerek 'ConsoleApp1' adlı yeni bir C# Konsol Uygulaması için kurulumu gösteriyor. Yeni projeyi yapılandırın

Ardından, aşağıdaki yapıyı seçin. Bu projede .NET Core 6 kullanılacak.

.NET 6.0 (Uzun süreli destek) çerçevesi seçili olan Konsol Uygulaması yapılandırmasını gösteren Visual Studio proje oluşturma penceresi. Bir .NET Framework sürümü seçin

Uygulama çözüm dosyasını oluşturduktan sonra program.cs dosyası açılacak, böylece program kodunu girebilir ve uygulamayı derleyip çalıştırabilirsiniz.

Visual Studio'da IronXLConsole projesinin başlangıç kod yapısıyla CSV dışa aktarma işlevselliği için hazır boş bir C# konsol uygulaması penceresi. Yeni oluşturulan Konsol Uygulaması projesi

Kütüphane daha sonra eklenebilir ve kodu değerlendirmek için kullanılabilir. Diğer proje türleri için, .NET MAUI uygulamaları veya VB.NET projeleri gibi, süreç benzerdir ancak framework'e özgü hususlarla.

IronXL Kütüphanesini Nasıl Yüklerim?

IronXL Kütüphanesini indirmek ve yüklemek için dört yöntem vardır.

Şunlardır:

  • Visual Studio üzerinden yükleme
  • Visual Studio Paket Yöneticisi Konsolu kullanarak yükleme
  • NuGet web sitesi üzerinden doğrudan indirme
  • IronXL web sitesinden doğrudan indirme

Visual Studio Yüklemesi İçin Hangi Yöntemi Kullanmalıyım?

NuGet Paket Yöneticisi kullanılarak IronXL modülü yüklenebilir. IronXL'yi bulmak için önce NuGet Paket Yöneticisi'ni başlatmalı ve gezinme paneline bakmalısınız. IronXL'yi arama listelerinden seçerek yükleyin. Bundan sonra, IronXL kütüphanesi bu uygulamada kullanılabilir hale gelecektir.

Aşağıdaki resim, Visual Studio'nun NuGet Paket Yöneticisi'nin nasıl başlatılacağını göstermektedir.

Araçlar açılır menüsü altında NuGet Paket Yöneticisi seçeneği ve Paket Yöneticisi Konsolu vurgulanmış olarak Araçlar menüsü genişletilmiş Visual Studio ekranı. NuGet Paket Yöneticisine gidin

Kolay entegrasyon için Yükle düğmesi gösterilen IronXl.Excel paketi, 2022.3.0 sürümü, 133K indirme ile NuGet Paket Yöneticisi arayüzü. NuGet Paket Yöneticisi UI'de IronXL paketini yükleyin

Paket Yöneticisi Konsolunu Ne Zaman Kullanmalıyım?

Birçok geliştirici görevleri gerçekleştirmek için bir konsol kullanmayı tercih eder. Bu nedenle, terminal yüklemesi de bir seçenektir. Komut satırını kullanarak IronXL'yi yüklemek için aşağıdaki talimatlara uyun.

  • Visual Studio'da Araçlar > NuGet Paket Yöneticisi > Paket Yöneticisi arayüzüne gidin.
  • Paket yöneticisinin konsol sekmesine aşağıdaki komutu girin:

    Install-Package IronXl.Excel
  • IronXL'nin indirildiğini ve aktif projeye yüklendiğini bekleyin.

'Install-Package IronXl.Excel' komutunun Visual Studio'daki Paket Yöneticisi Konsolunda başarılı bir kurulum onay mesajları ile gösterimi. Paket Yöneticisi Konsolu UI'de IronXL paketini yükleyin

Neden NuGet Web Sitesinden İndirmeliyim?

NuGet paketi web sitesinden doğrudan üçüncü bir seçenek olarak indirilebilir. Bu yöntem, internet erişiminin kısıtlı olduğu ortamlarda veya paketleri manuel olarak yönetmeniz gerektiğinde özellikle faydalıdır.

  • resmi NuGet bağlantısına gidin.
  • İndirme paketi seçeneği sağdaki menüde bulunabilir.
  • Kaydedilen dosyayı iki kez tıklayın. Hemen yüklenecektir.
  • Çözümü yeniden yükleyin ve ardından projede kullanmaya başlayın.

IronXL Web Sitesinden Doğrudan Nasıl Yükleyebilirim?

Web sitesinden en son paketi doğrudan indirmek için bu IronXL ZIP dosyasını indirme bağlantısını tıklayın. Bu bağlantı, IronXL kütüphanesi DLL'nin en son sürümünü içeren bir ZIP dosyasını indirecektir. İndirme bitince, ZIP dosyasının içeriğini istediğiniz bir dizine çıkarın.

İndirildi̇kten sonra dosyayı projeye eklemek için aşağıdaki adımlara uyun.

  • Çözüm penceresinden projeye sağ tıklayın.
  • Başvuruları seçin ve ardından IronXL DLL'lerini içeren çıkarılmış klasöre gidin.
  • DLL'yi seçin ve aktif projeye Referans olarak eklemek için Tamam'a tıklayın.

Dağıtım senaryoları için, Docker kapları içinde IronXL ayarlayabilir veya AWS Lambda ve Azure Functions gibi bulut platformlarına dağıtabilirsiniz.

DataTable Nasıl CSV Dosyasına Dışarı Aktarılır?

DataTables, IronXL kullanarak kolay ve hızlı bir şekilde CSV dosyalarına dışarı aktarılabilir. Özel ayraçlar ve kodlama seçenekleri destekleyerek yeni CSV dosyalarına veri yazmaya yardımcı olur.

Aşağıdaki kod resminde gösterildiği gibi, IronXL sınıf ve yöntemlerini kullanmak için öncelikle IronXL isim alanı dahil edilmelidir.

'using IronXL;' ve 'using System.Data;' ad alanı beyanları ile VeriTablosu'ndan CSV'ye dışa aktarma uygulaması için sözdizimi vurgulamalı C# kod editörü. Genel isim alanlarını ekleyin

Excel dosyaları IronXL kullanılarak oluşturulabilir, ardından bu dosyaları WorkBook nesnelerine dönüştürür. Ardından bu nesneler üzerinde çeşitli işlemler gerçekleştirin. Aşağıdaki örnek kod, bir DataTable'yi bir Excel çalışma sayfasına dönüştürerek bir Excel dosyası oluşturacaktır.

using IronXL;
using System.Data;

// Entry point of the application
static void Main(string[] args)
{
    // Specify the file path for the CSV file output
    ExportToExcel("H:\\test.csv");
}

// Exports the DataTable to an Excel file and saves it as CSV
public static void ExportToExcel(string filepath)
{
    // Create a DataTable and add columns and rows
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Fruits", typeof(string));
    table.Rows.Add("Apple");
    table.Rows.Add("Orange");
    table.Rows.Add("Strawberry");
    table.Rows.Add("Grapes");
    table.Rows.Add("Watermelon");
    table.Rows.Add("Bananas");
    table.Rows.Add("Lemons");

    // Create a new WorkBook and add the DataTable data to it
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        // Write each item from the DataTable into the worksheet starting from cell A1
        writer["A" + (rowCount)].Value = row[0].ToString();
        rowCount++;
    }
    // Save the workbook as a CSV file with a specified delimiter
    wb.SaveAsCsv(filepath, ";");
}
using IronXL;
using System.Data;

// Entry point of the application
static void Main(string[] args)
{
    // Specify the file path for the CSV file output
    ExportToExcel("H:\\test.csv");
}

// Exports the DataTable to an Excel file and saves it as CSV
public static void ExportToExcel(string filepath)
{
    // Create a DataTable and add columns and rows
    DataTable table = new DataTable();
    table.Columns.Add("DataSet_Fruits", typeof(string));
    table.Rows.Add("Apple");
    table.Rows.Add("Orange");
    table.Rows.Add("Strawberry");
    table.Rows.Add("Grapes");
    table.Rows.Add("Watermelon");
    table.Rows.Add("Bananas");
    table.Rows.Add("Lemons");

    // Create a new WorkBook and add the DataTable data to it
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    var writer = wb.DefaultWorkSheet;
    int rowCount = 1;
    foreach (DataRow row in table.Rows)
    {
        // Write each item from the DataTable into the worksheet starting from cell A1
        writer["A" + (rowCount)].Value = row[0].ToString();
        rowCount++;
    }
    // Save the workbook as a CSV file with a specified delimiter
    wb.SaveAsCsv(filepath, ";");
}
Imports IronXL
Imports System.Data

' Entry point of the application
Shared Sub Main(ByVal args() As String)
	' Specify the file path for the CSV file output
	ExportToExcel("H:\test.csv")
End Sub

' Exports the DataTable to an Excel file and saves it as CSV
Public Shared Sub ExportToExcel(ByVal filepath As String)
	' Create a DataTable and add columns and rows
	Dim table As New DataTable()
	table.Columns.Add("DataSet_Fruits", GetType(String))
	table.Rows.Add("Apple")
	table.Rows.Add("Orange")
	table.Rows.Add("Strawberry")
	table.Rows.Add("Grapes")
	table.Rows.Add("Watermelon")
	table.Rows.Add("Bananas")
	table.Rows.Add("Lemons")

	' Create a new WorkBook and add the DataTable data to it
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
	Dim writer = wb.DefaultWorkSheet
	Dim rowCount As Integer = 1
	For Each row As DataRow In table.Rows
		' Write each item from the DataTable into the worksheet starting from cell A1
		writer("A" & (rowCount)).Value = row(0).ToString()
		rowCount += 1
	Next row
	' Save the workbook as a CSV file with a specified delimiter
	wb.SaveAsCsv(filepath, ";")
End Sub
$vbLabelText   $csharpLabel

Yukarıdaki kod DataTable'yi bir Excel dosyasına dışa aktarıyor. Bir DataTable oluşturulduğunda sütun başlıkları oluşturulur. Ardından, ilk sütunu kurduktan sonra satırları birer birer ekleyin. DataTable nesnesine sütun ve satır eklendikten sonra bu verileri barındıracak WorkBook nesnesi oluşturulur. WorkSheet nesnesi oluşturulur ve WorkBook nesnesine eklenir.

Her bir DataTable değeri okunur ve foreach döngüsü kullanılarak WorkSheet'ye eklenmeden önce eklenir. Çalışma sayfasına tüm değerler eklendikten sonra, SaveAsCsv yöntemi, bu değerleri bir CSV dosyasına kaydeder. Hem ayırıcıyı hem de dosya konumunu parametre olarak belirleyebilirsiniz.

Daha karmaşık senaryolarda, birden fazla DataTable'i farklı çalışma sayfaları olarak dışa aktarmak veya daha yapılandırılmış veri örgütlenmesi için DataSet'ler ile çalışmak isteyebilirsiniz.

Farklı CSV Biçimleriyle Çalışma

IronXL, CSV dosyalarıyla çalışırken esneklik sağlar. İşte bir DataTable'in özel biçimlendirme ve kodlama ile dışa aktarımının nasıl yapıldığını gösteren bir örnek:

// Export with custom delimiter and encoding
public static void ExportToCSVWithOptions(DataTable dataTable, string filepath)
{
    // Create workbook from DataTable
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet ws = wb.CreateWorkSheet("DataExport");

    // Add headers
    for (int i = 0; i < dataTable.Columns.Count; i++)
    {
        ws[$"{(char)('A' + i)}1"].Value = dataTable.Columns[i].ColumnName;
    }

    // Add data rows
    for (int row = 0; row < dataTable.Rows.Count; row++)
    {
        for (int col = 0; col < dataTable.Columns.Count; col++)
        {
            ws[$"{(char)('A' + col)}{row + 2}"].Value = dataTable.Rows[row][col];
        }
    }

    // Save with custom delimiter (comma) and UTF-8 encoding
    wb.SaveAsCsv(filepath, ",", System.Text.Encoding.UTF8);
}
// Export with custom delimiter and encoding
public static void ExportToCSVWithOptions(DataTable dataTable, string filepath)
{
    // Create workbook from DataTable
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLSX);
    WorkSheet ws = wb.CreateWorkSheet("DataExport");

    // Add headers
    for (int i = 0; i < dataTable.Columns.Count; i++)
    {
        ws[$"{(char)('A' + i)}1"].Value = dataTable.Columns[i].ColumnName;
    }

    // Add data rows
    for (int row = 0; row < dataTable.Rows.Count; row++)
    {
        for (int col = 0; col < dataTable.Columns.Count; col++)
        {
            ws[$"{(char)('A' + col)}{row + 2}"].Value = dataTable.Rows[row][col];
        }
    }

    // Save with custom delimiter (comma) and UTF-8 encoding
    wb.SaveAsCsv(filepath, ",", System.Text.Encoding.UTF8);
}
Imports System.Text

' Export with custom delimiter and encoding
Public Shared Sub ExportToCSVWithOptions(dataTable As DataTable, filepath As String)
    ' Create workbook from DataTable
    Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
    Dim ws As WorkSheet = wb.CreateWorkSheet("DataExport")

    ' Add headers
    For i As Integer = 0 To dataTable.Columns.Count - 1
        ws($"{ChrW(AscW("A"c) + i)}1").Value = dataTable.Columns(i).ColumnName
    Next

    ' Add data rows
    For row As Integer = 0 To dataTable.Rows.Count - 1
        For col As Integer = 0 To dataTable.Columns.Count - 1
            ws($"{ChrW(AscW("A"c) + col)}{row + 2}").Value = dataTable.Rows(row)(col)
        Next
    Next

    ' Save with custom delimiter (comma) and UTF-8 encoding
    wb.SaveAsCsv(filepath, ",", Encoding.UTF8)
End Sub
$vbLabelText   $csharpLabel

Bu yaklaşım size dışa aktarma süreci üzerinde daha fazla kontrol sağlar, hücre veri biçimlerini ayarlamanıza ve çıkış yapısını özelleştirmenize olanak tanır.

Liste edilmiş meyveler (Elma, Portakal, çilek, üzüm, karpuz, muz, limonlar) ile uygun CSV formatlamalı ve fazladan ayırıcı içermeyen Excel elektronik tablosu A sütununda. Çıktı CSV dosyası

Çalıştırma kodu örneği çıktısı yukarıda gösterilmektedir. Ekran görüntüsünde, veri tablosundan her bir veri parçası tek tek yeni oluşturulan Excel sayfasına eklenmiştir. Ayrıca, ihracattan önce hücrelere biçimlendirme uygulayabilir veya hesaplanan değerler için formüller ekleyebilirsiniz.

Daha gelişmiş CSV işlemleri için,:

IronXL eğitimi hakkında daha fazla bilgi edinmek için bu Excel formatlarına nasıl dışa aktarım yapacağınızı tıklayın.

CSV Dışa Aktarma İçin Neden IronXL Kullanmalıyım?

En popüler Excel araçlarından biri IronXL'dir. Dış kaynaklardan herhangi bir başka kütüphaneye bağlı değildir. Otonomdur ve Microsoft Excel kurulumu gerektirmez. Birçok kanal üzerinden çalışır.

IronXL, tüm Microsoft Excel belgeyle ilgili görevlerin programatik olarak uygulanması için hepsi bir arada bir çözüm sağlar. Formül hesaplama yapabilir, dize veya sayı sıralaması, kırpma ve ekleme, bul ve değiştir, birleştir ve ayır, dosya kaydet vb. işlemleri yapabilirsiniz. Ayrıca hücre veri biçimlerini ayarlayabilir ve elektronik tablo verilerini doğrulayabilirsiniz. Ayrıca CSV dosyalarını okuma ve yazmayı destekler ve Excel verileri gibi çalışmanıza yardımcı olur.

Ek faydalar şunlardır:

IronXL'in başlangıç fiyatı lansmanda $799. Ürün yardımı ve güncellemeleri için bir yıllık abonelik ücreti ödeme seçeneğini de sunar. Ek bir ücret karşılığında, IronXL sınırsız yeniden dağıtım için güvenlik sunar. Daha geniş yaklaşık fiyat bilgilerini araştırmak için lütfen bu lisanslama sayfasını ziyaret edin.

Sıkça Sorulan Sorular

Bir DataTable'ı C# dilinde bir CSV dosyasına nasıl dışa aktarabilirim?

Bir WorkBook oluşturarak ve veriyi çalışma tablosu nesnelerine dışa aktararak IronXL'yi kullanarak bir DataTable'ı CSV dosyasına dışa aktarabilirsiniz. Bu, Microsoft Excel gerektirmeden sorunsuz bir dönüşüm ve dışa aktarma sağlar.

Bu kütüphaneyi kullanarak hangi dosya formatlarını dışa aktarabilirim?

IronXL, XLS, CSV, TSV ve JSON gibi çeşitli formatlara veri dışa aktarımına olanak tanır, farklı veri ihtiyaçlarına esneklik sağlar.

Bu kütüphane ile Excel benzeri işlemler yapmak mümkün mü?

Evet, IronXL, formül hesaplamaları, veri sıralama ve dosya kaydetme gibi Excel benzeri işlemleri etkinleştirir, bu da onu Excel ile ilgili programlama görevleri için kapsamlı bir araç haline getirir.

Bu kütüphaneyi kullanmak için Microsoft Excel yüklemem gerekiyor mu?

Hayır, IronXL, Microsoft Excel yüklü olmasına gerek olmayan bağımsız bir .NET kütüphanesidir, bu sayede geliştiricilerin C# uygulamaları içinde doğrudan Excel belgeleriyle çalışmalarına izin verir.

Bu kütüphane hangi platformlar ile uyumludur?

IronXL, .NET Core, .NET Framework, Xamarin gibi platformlar ve Windows, Linux ve macOS gibi işletim sistemleriyle uyumludur.

IronXL kütüphanesini projemde nasıl kurabilirim?

Visual Studio kullanarak NuGet Paket Yöneticisine erişerek veya doğrudan NuGet veya IronXL web sitelerinden indirerek IronXL bir .NET projesine kurulabilir.

Bu kütüphane için mevcut fiyatlandırma seçenekleri nelerdir?

IronXL, ürün yardımı ve güncellemelerini içeren bir yıllık abonelik seçenekleri ile başlayan bir fiyat sunar, sürekli destek ve en son özelliklere erişim sağlar.

Jordi Bardia
Yazılım Mühendisi
Jordi Python, C# ve C++ konularında en yetkin, Iron Software'deki yeteneklerini kullanmadığı zamanlarda; oyun programlıyor. Ürün testi, ürün geliştirme ve araştırma sorumluluklarını paylaşan Jordi, sürekli ürün gelişimine büyük değer katıyor. Çeşitli deneyimleri onu ...
Daha Fazlasını Oku

Iron Destek Ekibi

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