Altbilgi içeriğine atla
IRONXL KULLANARAK

IronXL ile C#'da Verileri CSV'ye Nasıl Kaydedersiniz

Modern C# uygulamalarında, iş raporları oluşturma veya veritabanı kayıtlarını dışa aktarma gibi, CSV dosyalarını yönetmek temel bir gerekliliktir. .NET, temel dosya yazma yetenekleri sağlarken, CSV dosyalarını verimli bir şekilde işlemek, özellikle özel karakterler, çoklu veri türleri ve büyük veri setleriyle çalışırken, daha sağlam bir çözüm gerektirir. IronXL, C#'te CSV'yi kaydetmek gibi CSV işlemlerini ele almak için kapsamlı bir API sağlayarak tüm süreci basitleştirir, tam Excel uyumluluğuyla birlikte.

Bu kılavuz, C# uygulamalarınızda CSV dosyaları oluşturma, kaydetme ve yönetme için IronXL'nin güçlü özelliklerini nasıl kullanabileceğinizi gösterir. Basit koleksiyonlardan karmaşık DataTable'lara kadar çeşitli veri kaynaklarını yönetme konusunda pratik teknikler öğreneceksiniz, tüm bunları temiz ve sürdürülebilir kod yazarken yapacaksınız.

C# ile IronXL kullanarak veriyi CSV'ye kaydetme: Resim 1 - IronXL

IronXL ile Başlarken

CSV işlemlerine dalmadan önce, projenize IronXL'yi kurmanız gerekecek. Kütüphane .NET Framework 4.6.2+ ve .NET Core 2+ destekliyor, böylece hem eski hem de modern uygulamalarla uyumludur. IronXL ayrıca Windows, Linux ve macOS ortamlarında sorunsuz çalışan mükemmel çapraz platform desteği sağlar.

C# ile IronXL kullanarak veriyi CSV'ye kaydetme: Resim 2 - Çapraz Platform

Visual Studio'yu açın, Paket Yöneticisi Konsoluna gidin ve şu komutu yazın:

Install-Package IronXl.Excel

C# ile IronXL kullanarak veriyi CSV'ye kaydetme: Resim 3 - Kurulum

Veya .NET CLI üzerinden:

dotnet add package IronXl.Excel
dotnet add package IronXl.Excel
SHELL

Kurulum tamamlandığında, CSV yönetim özelliklerine erişmek için C# dosyanıza IronXL ad alanını ekleyin, örneğin veri yazmak:

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

Bu basit kurulum, size güçlü tablo manipülasyon yeteneklerine hemen erişim sağlar. Excel Interop veya karmaşık CSV ayrıştırma mantığı gerektiren geleneksel yaklaşımların aksine, IronXL arka plandaki karmaşıklıkları yöneten sezgisel bir API sağlar. Kütüphane, Microsoft Office kurulumu gerektirmeden bağımsız çalışır, böylece sunucu dağıtımları ve konteynerize edilmiş uygulamalar için idealdir.

Kütüphaneyi yüklerken veya başlatırken bir hata oluşursa, projenizin desteklenen bir .NET sürümünü hedeflediğinden ve tüm bağımlılıkların doğru bir şekilde geri yüklendiğinden emin olun.

Yeni CSV Dosyalarına Veri Nasıl Kaydedilir ve Yazılır?

IronXL kullanarak sıfırdan CSV dosyaları oluşturmak veya yazmak sezgisel bir yapıyı takip eder. Çalışma kitabı oluşturarak, tüm verileri hücrelere ekleyip CSV formatında kaydederek işe başlayabilirsiniz. Bu yaklaşım, temel dize birleştirme yöntemlerinden çok daha fazla kontrol sağlar.

Ana CSV oluşturma mantığına dalmadan önce, ortak sınıf öğrenci yapısı kullanılarak yapılmış basit bir model tanımı. Bu model, daha sonra CSV'ye aktarabileceğimiz yapılandırılmış verileri temsil eder.

// Define a Student class to model your data
public class Student
{
    public string? Name { get; set; } // public string firstname, public string lastname
    public int Age { get; set; }
    public string? Grade { get; set; }
}
// Define a Student class to model your data
public class Student
{
    public string? Name { get; set; } // public string firstname, public string lastname
    public int Age { get; set; }
    public string? Grade { get; set; }
}
Option Strict On



Public Class Student
    Public Property Name As String
    Public Property Age As Integer
    Public Property Grade As String
End Class
$vbLabelText   $csharpLabel

Öğrenci nesnelerinin bir listesini doldurabilir ve ardından bunları CSV dosyasına verimli bir şekilde aktarmak için IronXL'yi kullanabilirsiniz. Bu örnek, sınıf özelliklerini çalışma sayfası hücrelerine nasıl eşleyeceğinizi gösterir:

using System;
using System.Collections.Generic;
using IronXL;
class Program
{
    static void Main(string[] args)
    {
        // Create sample data using the student class
        List<Student> students = new List<Student>()
        {
            new Student { Name = "Alice Johnson", Age = 20, Grade = "A" },
            new Student { Name = "Brian Smith", Age = 22, Grade = "B+" },
            new Student { Name = "Chloe Brown", Age = 19, Grade = "A-" },
            new Student { Name = "David Clark", Age = 21, Grade = "B" }
        };
        // Create a new workbook and worksheet
        WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkSheet sheet = workbook.CreateWorkSheet("Students");
        // Add headers
        sheet["A1"].Value = "Name";
        sheet["B1"].Value = "Age";
        sheet["C1"].Value = "Grade";
        // Add student data to the worksheet
        for (int i = 0; i < students.Count; i++)
        {
            sheet[$"A{i + 2}"].Value = students[i].Name;
            sheet[$"B{i + 2}"].IntValue = students[i].Age;
            sheet[$"C{i + 2}"].Value = students[i].Grade;
        }
        // Save as CSV file
        workbook.SaveAsCsv("students.csv");
        Console.WriteLine("students.csv file has been created successfully!");
    }
}
using System;
using System.Collections.Generic;
using IronXL;
class Program
{
    static void Main(string[] args)
    {
        // Create sample data using the student class
        List<Student> students = new List<Student>()
        {
            new Student { Name = "Alice Johnson", Age = 20, Grade = "A" },
            new Student { Name = "Brian Smith", Age = 22, Grade = "B+" },
            new Student { Name = "Chloe Brown", Age = 19, Grade = "A-" },
            new Student { Name = "David Clark", Age = 21, Grade = "B" }
        };
        // Create a new workbook and worksheet
        WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkSheet sheet = workbook.CreateWorkSheet("Students");
        // Add headers
        sheet["A1"].Value = "Name";
        sheet["B1"].Value = "Age";
        sheet["C1"].Value = "Grade";
        // Add student data to the worksheet
        for (int i = 0; i < students.Count; i++)
        {
            sheet[$"A{i + 2}"].Value = students[i].Name;
            sheet[$"B{i + 2}"].IntValue = students[i].Age;
            sheet[$"C{i + 2}"].Value = students[i].Grade;
        }
        // Save as CSV file
        workbook.SaveAsCsv("students.csv");
        Console.WriteLine("students.csv file has been created successfully!");
    }
}
Imports System
Imports System.Collections.Generic
Imports IronXL

Class Program
    Shared Sub Main(ByVal args As String())
        ' Create sample data using the student class
        Dim students As New List(Of Student)() From {
            New Student With {.Name = "Alice Johnson", .Age = 20, .Grade = "A"},
            New Student With {.Name = "Brian Smith", .Age = 22, .Grade = "B+"},
            New Student With {.Name = "Chloe Brown", .Age = 19, .Grade = "A-"},
            New Student With {.Name = "David Clark", .Age = 21, .Grade = "B"}
        }

        ' Create a new workbook and worksheet
        Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
        Dim sheet As WorkSheet = workbook.CreateWorkSheet("Students")

        ' Add headers
        sheet("A1").Value = "Name"
        sheet("B1").Value = "Age"
        sheet("C1").Value = "Grade"

        ' Add student data to the worksheet
        For i As Integer = 0 To students.Count - 1
            sheet($"A{i + 2}").Value = students(i).Name
            sheet($"B{i + 2}").IntValue = students(i).Age
            sheet($"C{i + 2}").Value = students(i).Grade
        Next

        ' Save as CSV file
        workbook.SaveAsCsv("students.csv")
        Console.WriteLine("students.csv file has been created successfully!")
    End Sub
End Class

Class Student
    Public Property Name As String
    Public Property Age As Integer
    Public Property Grade As String
End Class
$vbLabelText   $csharpLabel

Açıklama:

  1. Ortak sınıf öğrenci, veri modeliniz için şemayı tanımlar.
  2. Örnek verilerle birlikte öğrenci nesnelerinin bir listesi oluşturulur.
  3. IronXL'nin WorkBook ve WorkSheet API'leri, bellekte yapılandırılmış bir elektronik tablo oluşturmak için kullanılır.
  4. CSV çıktısında okunabilirliği sağlamak için başlıklar manuel olarak eklenir.
  5. Öğrenci verileri satır satır çalışma sayfasına yazılır.
  6. Son olarak, veriler SaveAsCsv() kullanılarak bir CSV dosyası olarak kaydedilir.

Çıktı

C# ile IronXL kullanarak veriyi CSV'ye kaydetme: Şekil 4 - Konsol Çıktısı

C# ile IronXL kullanarak veriyi CSV'ye kaydetme: Şekil 5 - Excel Çıktısı

Bu desen ölçeklenebilir; bu sayede, daha büyük veri setleri için kolayca uyarlayabilir veya veritabanından ya da API'den öğrenci verilerini alan bir uygulamaya entegre edebilirsiniz.

Örneğin, dosyaya yazarken bir hata oluştuğunda (örneğin, dosya kilitli ya da yol geçersiz), bunu zarif bir şekilde ele alabilirsiniz:

try
{
    workbook.SaveAsCsv("students.csv");
}
catch (Exception ex)
{
    Console.WriteLine($"Error occurred while saving CSV: {ex.Message}");
}
try
{
    workbook.SaveAsCsv("students.csv");
}
catch (Exception ex)
{
    Console.WriteLine($"Error occurred while saving CSV: {ex.Message}");
}
Try
    workbook.SaveAsCsv("students.csv")
Catch ex As Exception
    Console.WriteLine($"Error occurred while saving CSV: {ex.Message}")
End Try
$vbLabelText   $csharpLabel

Bu, dosya I/O sorunları ortaya çıktığında bile uygulamanızın sağlam ve bilgilendirici kalmasını sağlar.

Temel bir CSV dosyası oluşturmak için örnek kod aşağıdadır.

static void Main(string[] args)
{
 // Create a new workbook
 var writer = WorkBook.Create(ExcelFileFormat.XLSX);
 WorkSheet sheet = writer.CreateWorkSheet("Sales Data");
 // Add headers
 sheet["A1"].Value = "Product";
 sheet["B1"].Value = "Quantity";
 sheet["C1"].Value = "Price";
 sheet["D1"].Value = "Total";
 // Add data rows
 sheet["A2"].Value = "Widget A";
 sheet["B2"].IntValue = 100;
 sheet["C2"].DecimalValue = 29.99m;
 sheet["D2"].Formula = "=B2*C2";
 sheet["A3"].Value = "Widget B";
 sheet["B3"].IntValue = 50;
 sheet["C3"].DecimalValue = 49.99m;
 sheet["D3"].Formula = "=B3*C3";
 // Save as new CSV file
 writer.SaveAsCsv("sales_report.csv");
}
static void Main(string[] args)
{
 // Create a new workbook
 var writer = WorkBook.Create(ExcelFileFormat.XLSX);
 WorkSheet sheet = writer.CreateWorkSheet("Sales Data");
 // Add headers
 sheet["A1"].Value = "Product";
 sheet["B1"].Value = "Quantity";
 sheet["C1"].Value = "Price";
 sheet["D1"].Value = "Total";
 // Add data rows
 sheet["A2"].Value = "Widget A";
 sheet["B2"].IntValue = 100;
 sheet["C2"].DecimalValue = 29.99m;
 sheet["D2"].Formula = "=B2*C2";
 sheet["A3"].Value = "Widget B";
 sheet["B3"].IntValue = 50;
 sheet["C3"].DecimalValue = 49.99m;
 sheet["D3"].Formula = "=B3*C3";
 // Save as new CSV file
 writer.SaveAsCsv("sales_report.csv");
}
$vbLabelText   $csharpLabel

Bu kod, başlıklar ve verilerle yapılandırılmış bir çalışma kitabı oluşturur, ardından CSV formatına aktarır. WorkBook.Create() metodu bellekte yeni bir elektronik tablo başlatır. Her hücre farklı veri türlerini, örneğin dizeler, tamsayılar, ondalıklar ve hatta formülleri barındırabilir. SaveAsCsv() çağrıldığında, IronXL otomatik olarak dönüştürmeyi yönetir, özel karakterleri düzgün bir şekilde kaçar ve veri bütünlüğünü korur.

Bu yaklaşımın güzelliği esnekliğindedir. Verileri bir elektronik tablo olarak dışa aktarmadan önce yönetebilir, formüller uygulayabilir, biçimlendirebilir veya doğrulama kuralları uygulayabilirsiniz. IronXL, formülleri dışa aktarma işlemi sırasında otomatik olarak değerlendirir, böylece CSV'nizde formül metni yerine hesaplanan değerler bulunur.

Çıktı

C# ile IronXL kullanarak veriyi CSV'ye kaydetme: Şekil 6 - CSV Çıktısı

Özel ayırıcı gereksinimleri için, IronXL, standart virgüle alternatifler belirlemenize izin verir:

// Save with semicolon delimiter for European locale compatibility
workbook.SaveAsCsv("sales_report.csv", ";");
// Save with tab delimiter
workbook.SaveAsCsv("sales_report.tsv", "\t");
// Save with semicolon delimiter for European locale compatibility
workbook.SaveAsCsv("sales_report.csv", ";");
// Save with tab delimiter
workbook.SaveAsCsv("sales_report.tsv", "\t");
$vbLabelText   $csharpLabel

Bu esneklik, çeşitli bölgesel ayarlar ve uygulama gereksinimleri ile uyumluluğu garanti eder. Kütüphane, farklı sistemler ve yerlerde doğru karakter temsili sağlamak için kodlama sorunlarını otomatik olarak yönetir.

C# ile IronXL kullanarak veriyi CSV'ye kaydetme: Şekil 7 - Özellikler

DataTable CSV'ye Nasıl Aktarılır?

DataTables, .NET uygulamalarında veritabanlarından veya iş mantığından tablo verileri depolamak için yaygındır. IronXL, sütun adlarını ve veri türlerini işlemin her aşamasında koruyarak DataTable'ları sorunsuz bir şekilde CSV'ye dönüştürür.

// Create a sample DataTable (simulating database results) to store data
DataTable customerOrders = new DataTable("CustomerOrders");
customerOrders.Columns.Add("OrderID", typeof(int));
customerOrders.Columns.Add("CustomerName", typeof(string));
customerOrders.Columns.Add("OrderDate", typeof(DateTime));
customerOrders.Columns.Add("Amount", typeof(decimal));
// Add sample data
customerOrders.Rows.Add(1001, "Acme Corp", new DateTime(2024, 1, 15), 1250.50m);
customerOrders.Rows.Add(1002, "TechStart Inc", new DateTime(2024, 1, 16), 3500.00m);
customerOrders.Rows.Add(1003, "Global Systems", new DateTime(2024, 1, 17), 875.25m);
// Convert DataTable to CSV using IronXL
WorkBook workbook = WorkBook.Create();
WorkSheet sheet = workbook.CreateWorkSheet("Orders");
// Add headers from DataTable columns
for (int i = 0; i < customerOrders.Columns.Count; i++)
{
    sheet.SetCellValue(0, i, customerOrders.Columns[i].ColumnName);
}
// Add data rows
for (int row = 0; row < customerOrders.Rows.Count; row++)
{
    for (int col = 0; col < customerOrders.Columns.Count; col++)
    {
        sheet.SetCellValue(row + 1, col, customerOrders.Rows[row][col]);
    }
}
// Export to CSV
workbook.SaveAsCsv("customer_orders.csv");
// Create a sample DataTable (simulating database results) to store data
DataTable customerOrders = new DataTable("CustomerOrders");
customerOrders.Columns.Add("OrderID", typeof(int));
customerOrders.Columns.Add("CustomerName", typeof(string));
customerOrders.Columns.Add("OrderDate", typeof(DateTime));
customerOrders.Columns.Add("Amount", typeof(decimal));
// Add sample data
customerOrders.Rows.Add(1001, "Acme Corp", new DateTime(2024, 1, 15), 1250.50m);
customerOrders.Rows.Add(1002, "TechStart Inc", new DateTime(2024, 1, 16), 3500.00m);
customerOrders.Rows.Add(1003, "Global Systems", new DateTime(2024, 1, 17), 875.25m);
// Convert DataTable to CSV using IronXL
WorkBook workbook = WorkBook.Create();
WorkSheet sheet = workbook.CreateWorkSheet("Orders");
// Add headers from DataTable columns
for (int i = 0; i < customerOrders.Columns.Count; i++)
{
    sheet.SetCellValue(0, i, customerOrders.Columns[i].ColumnName);
}
// Add data rows
for (int row = 0; row < customerOrders.Rows.Count; row++)
{
    for (int col = 0; col < customerOrders.Columns.Count; col++)
    {
        sheet.SetCellValue(row + 1, col, customerOrders.Rows[row][col]);
    }
}
// Export to CSV
workbook.SaveAsCsv("customer_orders.csv");
Imports System
Imports System.Data
Imports IronXL

' Create a sample DataTable (simulating database results) to store data
Dim customerOrders As New DataTable("CustomerOrders")
customerOrders.Columns.Add("OrderID", GetType(Integer))
customerOrders.Columns.Add("CustomerName", GetType(String))
customerOrders.Columns.Add("OrderDate", GetType(DateTime))
customerOrders.Columns.Add("Amount", GetType(Decimal))
' Add sample data
customerOrders.Rows.Add(1001, "Acme Corp", New DateTime(2024, 1, 15), 1250.5D)
customerOrders.Rows.Add(1002, "TechStart Inc", New DateTime(2024, 1, 16), 3500.0D)
customerOrders.Rows.Add(1003, "Global Systems", New DateTime(2024, 1, 17), 875.25D)
' Convert DataTable to CSV using IronXL
Dim workbook As WorkBook = WorkBook.Create()
Dim sheet As WorkSheet = workbook.CreateWorkSheet("Orders")
' Add headers from DataTable columns
For i As Integer = 0 To customerOrders.Columns.Count - 1
    sheet.SetCellValue(0, i, customerOrders.Columns(i).ColumnName)
Next
' Add data rows
For row As Integer = 0 To customerOrders.Rows.Count - 1
    For col As Integer = 0 To customerOrders.Columns.Count - 1
        sheet.SetCellValue(row + 1, col, customerOrders.Rows(row)(col))
    Next
Next
' Export to CSV
workbook.SaveAsCsv("customer_orders.csv")
$vbLabelText   $csharpLabel

Bu örnek, bir veritabanından gelen sipariş verilerinin raporlama veya entegrasyon amacıyla dışa aktarılması gereken gerçek dünya senaryosunu gösterir. Kod, sütun başlıklarını ve satır verilerini koruyarak DataTable yapısında ilerler. IronXL farklı veri türlerinin dönüştürülmesini uygun bir şekilde yönetir, böylece tarihlerin, ondalıkların ve dizelerin sonuç CSV dosyasında doğru biçimlendiğinden emin olur.

Çıktı

C# ile IronXL kullanarak veriyi CSV'ye kaydetme: Şekil 8 - DataTable'dan CSV'ye Çıktı

Birden fazla ilişkili tablo veya ileri düzey veri dönüşümleri içeren daha karmaşık senaryolar için, IronXL'nin hücre başvuru ve formül kapasitesinden faydalanabilirsiniz:

// Add summary row with formulas
int lastRow = customerOrders.Rows.Count + 1;
sheet[$"A{lastRow + 1}"].Value = "Total:";
sheet[$"D{lastRow + 1}"].Formula = $"=SUM(D2:D{lastRow})";
// Calculate and save
workbook.SaveAsCsv("customer_orders_with_total.csv");
// Add summary row with formulas
int lastRow = customerOrders.Rows.Count + 1;
sheet[$"A{lastRow + 1}"].Value = "Total:";
sheet[$"D{lastRow + 1}"].Formula = $"=SUM(D2:D{lastRow})";
// Calculate and save
workbook.SaveAsCsv("customer_orders_with_total.csv");
' Add summary row with formulas
Dim lastRow As Integer = customerOrders.Rows.Count + 1
sheet($"A{lastRow + 1}").Value = "Total:"
sheet($"D{lastRow + 1}").Formula = $"=SUM(D2:D{lastRow})"
' Calculate and save
workbook.SaveAsCsv("customer_orders_with_total.csv")
$vbLabelText   $csharpLabel

Bu yaklaşım, geleneksel DataTable dışa aktarma yöntemlerinden çok daha fazla kontrol sağlar. Hesaplanan alanlar ekleyebilir, koşullu biçimlendirme mantığı uygulayabilir veya son dışa aktarma öncesinde sütunları yeniden düzenleyebilirsiniz. IronXL belgeleri, ileri düzey DataTable manipülasyon senaryoları için kapsamlı örnekler sağlar.

Excel Dosyaları CSV'ye Nasıl Dönüştürülür?

IronXL'nin en güçlü özelliklerinden biri, mevcut Excel dosyalarıyla sorunsuz çalışabilmesi, verileri koruyarak onları CSV formatına dönüştürmesidir. Bu, Excel raporları üreten ancak aşağı akış işlem için CSV gerektiren sistemlerle entegrasyon yaparken özellikle kullanışlıdır.

// Load an existing Excel file
WorkBook existingWorkbook = WorkBook.Load("Budget.xlsx");
// Access the first worksheet
WorkSheet sheet = existingWorkbook.WorkSheets[0];
// Save as CSV - single sheet
sheet.SaveAsCsv("Budget.csv");
// Or save entire workbook (creates multiple CSV files for multiple sheets)
existingWorkbook.SaveAsCsv("BudgetReport.csv");
// Load an existing Excel file
WorkBook existingWorkbook = WorkBook.Load("Budget.xlsx");
// Access the first worksheet
WorkSheet sheet = existingWorkbook.WorkSheets[0];
// Save as CSV - single sheet
sheet.SaveAsCsv("Budget.csv");
// Or save entire workbook (creates multiple CSV files for multiple sheets)
existingWorkbook.SaveAsCsv("BudgetReport.csv");
' Load an existing Excel file
Dim existingWorkbook As WorkBook = WorkBook.Load("Budget.xlsx")
' Access the first worksheet
Dim sheet As WorkSheet = existingWorkbook.WorkSheets(0)
' Save as CSV - single sheet
sheet.SaveAsCsv("Budget.csv")
' Or save entire workbook (creates multiple CSV files for multiple sheets)
existingWorkbook.SaveAsCsv("BudgetReport.csv")
$vbLabelText   $csharpLabel

Excel dosyalarını yüklerken IronXL, formüllerle hesaplananlar da dahil olmak üzere tüm hücre değerlerini korur. Bu kütüphane, formülleri dönüştürme süreci sırasında değerlendirir ve böylece CSV'niz gerçek hesaplanmış değerleri içerir. Bu, CSV dışa aktarımlarında görülen formül metni sorununun ortadan kalkmasını sağlar.

Girdi

C# ile IronXL kullanarak veriyi CSV'ye kaydetme: Şekil 9 - Örnek Girdi

Çıktı

C# ile IronXL kullanarak veriyi CSV'ye kaydetme: Şekil 10 - Excel'den CSV'ye Çıktı

Birden fazla sayfa içeren çalışma kitapları için, IronXL her sayfayı akıllıca yönetir:

// Process multiple sheets
WorkBook multiSheetWorkbook = WorkBook.Load("annual_data.xlsx");
foreach (WorkSheet sheet in multiSheetWorkbook.WorkSheets)
{
    string fileName = $"export_{sheet.Name}.csv";
    sheet.SaveAsCsv(fileName);
    Console.WriteLine($"Exported {sheet.Name} to {fileName}");
}
// Process multiple sheets
WorkBook multiSheetWorkbook = WorkBook.Load("annual_data.xlsx");
foreach (WorkSheet sheet in multiSheetWorkbook.WorkSheets)
{
    string fileName = $"export_{sheet.Name}.csv";
    sheet.SaveAsCsv(fileName);
    Console.WriteLine($"Exported {sheet.Name} to {fileName}");
}
Imports System

' Process multiple sheets
Dim multiSheetWorkbook As WorkBook = WorkBook.Load("annual_data.xlsx")
For Each sheet As WorkSheet In multiSheetWorkbook.WorkSheets
    Dim fileName As String = $"export_{sheet.Name}.csv"
    sheet.SaveAsCsv(fileName)
    Console.WriteLine($"Exported {sheet.Name} to {fileName}")
Next
$vbLabelText   $csharpLabel

Bu kod, bir Excel dosyasındaki tüm çalışma sayfalarını yineleyerek her sayfa için ayrı bir CSV dosyası oluşturur. Sayfa adları, dosya adlarında korunarak her CSV dosyasının kaynağının kolayca tanınmasını sağlar. IronXL, XLSX, XLS, XLSM ve XLTX gibi farklı Excel formatlarını destekleyerek farklı Excel sürümleri ve kullanım senaryoları ile geniş bir uyumluluk sağlar. Belgedeki formatlar arası dönüşüm hakkında daha fazla bilgi edinin.

İleri Seviye CSV Yönetim Teknikleri

Temel CSV oluşturmadan öte, IronXL, üretim ortamlarında sıkça ortaya çıkan karmaşık senaryoları ele alacak gelişmiş özellikler sunar. Bu özellikler, sıradan dosya yazma yaklaşımlarından ayrılmasını sağlar.

Özel karakterlerle çalışırken, IronXL otomatik olarak kaçış ve kodlamayı yönetir:

WorkBook workbook = WorkBook.Create();
WorkSheet sheet = workbook.CreateWorkSheet("Data");
// Data with special characters
sheet["A1"].Value = "Company \"ABC\", Inc.";  // Quotes
sheet["B1"].Value = "Line 1\nLine 2";         // Newlines
sheet["C1"].Value = "Price: €50,00";          // Unicode characters
workbook.SaveAsCsv("special_chars.csv");
WorkBook workbook = WorkBook.Create();
WorkSheet sheet = workbook.CreateWorkSheet("Data");
// Data with special characters
sheet["A1"].Value = "Company \"ABC\", Inc.";  // Quotes
sheet["B1"].Value = "Line 1\nLine 2";         // Newlines
sheet["C1"].Value = "Price: €50,00";          // Unicode characters
workbook.SaveAsCsv("special_chars.csv");
Dim workbook As WorkBook = WorkBook.Create()
Dim sheet As WorkSheet = workbook.CreateWorkSheet("Data")
' Data with special characters
sheet("A1").Value = "Company ""ABC"", Inc."  ' Quotes
sheet("B1").Value = "Line 1" & vbLf & "Line 2"  ' Newlines
sheet("C1").Value = "Price: €50,00"  ' Unicode characters
workbook.SaveAsCsv("special_chars.csv")
$vbLabelText   $csharpLabel

IronXL, tırnak işaretlerini doğru bir şekilde algılar, çok satırlı içeriği işler ve Unicode karakterlerini korur. Bu otomatik yetenek, manuel dize manipülasyonu yaklaşımlarıyla oluşan yaygın CSV çözümleme hatalarını önler.

Çıktı

C# ile IronXL kullanarak veriyi CSV'ye kaydetme: Şekil 11 - Özel Karakterler Çıktısı

Toplu işleme senaryoları için, birden fazla dosyayı verimli bir şekilde yönetebilirsiniz:

string[] sourceFiles = Directory.GetFiles("input_folder", "*.xlsx");
foreach (string file in sourceFiles)
{
    WorkBook wb = WorkBook.Load(file);
    var csv = Path.ChangeExtension(file, ".csv");
    wb.SaveAsCsv(csv);
}
string[] sourceFiles = Directory.GetFiles("input_folder", "*.xlsx");
foreach (string file in sourceFiles)
{
    WorkBook wb = WorkBook.Load(file);
    var csv = Path.ChangeExtension(file, ".csv");
    wb.SaveAsCsv(csv);
}
Imports System.IO

Dim sourceFiles As String() = Directory.GetFiles("input_folder", "*.xlsx")
For Each file As String In sourceFiles
    Dim wb As WorkBook = WorkBook.Load(file)
    Dim csv = Path.ChangeExtension(file, ".csv")
    wb.SaveAsCsv(csv)
Next
$vbLabelText   $csharpLabel

Büyük veri kümeleri işlenirken bellek verimliliği çok önemli hale gelir. IronXL, belleği içsel olarak optimize eder ancak performansı daha da artırmak için verileri parçalar halinde işleyebilir ve kaynakları düzgün bir şekilde elden çıkarabilirsiniz:

WorkBook largeWorkbook = WorkBook.Create();
WorkSheet sheet = largeWorkbook.CreateWorkSheet("LargeData");
// Process in batches
const int batchSize = 1000;
for (int batch = 0; batch < 10; batch++)
{
 for (int row = 0; row < batchSize; row++)
 {
  int actualRow = (batch * batchSize) + row;
  sheet.SetCellValue(actualRow, 0, $"Row {actualRow}");
  // Add more data...
  sheet.SetCellValue(actualRow, 1, DateTime.Now);
  sheet.SetCellValue(actualRow, 2, $"Batch {batch + 1}");
 }
}
largeWorkbook.SaveAsCsv("large_dataset.csv");
WorkBook largeWorkbook = WorkBook.Create();
WorkSheet sheet = largeWorkbook.CreateWorkSheet("LargeData");
// Process in batches
const int batchSize = 1000;
for (int batch = 0; batch < 10; batch++)
{
 for (int row = 0; row < batchSize; row++)
 {
  int actualRow = (batch * batchSize) + row;
  sheet.SetCellValue(actualRow, 0, $"Row {actualRow}");
  // Add more data...
  sheet.SetCellValue(actualRow, 1, DateTime.Now);
  sheet.SetCellValue(actualRow, 2, $"Batch {batch + 1}");
 }
}
largeWorkbook.SaveAsCsv("large_dataset.csv");
Dim largeWorkbook As WorkBook = WorkBook.Create()
Dim sheet As WorkSheet = largeWorkbook.CreateWorkSheet("LargeData")
' Process in batches
Const batchSize As Integer = 1000
For batch As Integer = 0 To 9
    For row As Integer = 0 To batchSize - 1
        Dim actualRow As Integer = (batch * batchSize) + row
        sheet.SetCellValue(actualRow, 0, $"Row {actualRow}")
        ' Add more data...
        sheet.SetCellValue(actualRow, 1, DateTime.Now)
        sheet.SetCellValue(actualRow, 2, $"Batch {batch + 1}")
    Next
Next
largeWorkbook.SaveAsCsv("large_dataset.csv")
$vbLabelText   $csharpLabel

Çıktı

C# ile IronXL kullanarak veriyi CSV'ye kaydetme: Şekil 12 - Büyük Veri Seti Çıktısı

Sonuç

IronXL, C# dilinde CSV dosyası yönetimini yorucu bir görevden basit bir işleme dönüştürür. Hem CSV hem de Excel işlemleri için birleşik bir API sunarak, birden fazla kütüphane veya karmaşık çözümleme mantığı gereksinimini ortadan kaldırır. Kütüphanenin özel karakterlerin, veri türlerinin ve kodlama sorunlarının otomatik olarak ele alınması, farklı sistemler ve yerel ortamlar arasında güvenilir veri dışa aktarımı sağlar.

İster raporlama sistemleri, veri entegrasyon hatları veya basit dışa aktarma özellikleri oluşturuyor olun, IronXL verimli CSV yönetimi için gereken araçları sağlar. Mevcut Excel dosyaları ve DataTable yapıları ile uyumluluğu, büyük yeniden yapılandırma yapmadan mevcut uygulamalara entegrasyonu kolaylaştırır. CSV dosyalarınız oluşturulduktan sonra, doğrudan Excel'de açabilir veya hızlı doğrulama veya sorun giderme için herhangi bir metin düzenleyicide ham formatlarını inceleyebilirsiniz.

CSV işlemlerinizi streamline etmeye hazır mısınız? Bir ücretsiz deneme ile başlayın ve profesyonel destek ve güncellemeler dahildir.

C# ile IronXL kullanarak veriyi CSV'ye kaydetme: Şekil 13 - Lisanslama

Sıkça Sorulan Sorular

C#'da verileri CSV'ye kaydetmek için IronXL kullanmanın avantajı nedir?

IronXL, verileri CSV'ye kaydetmeyi iceren ancak Excel uyumluluğu da sunarak özel karakterleri, birden fazla veri türünü ve büyük veri kumelemelerini yönetmeyi kolaylaştıran kapsamlı bir API sağlar.

IronXL, CSV dosyalarinda özel karakterleri nasil yönetir?

IronXL, veri bütünlüğünü dosya işlemleri sırasında saglayarak kuvvetli ayrıştırma ve yazma yetenekleri sayesinde CSV dosya içeriklerinde özel karakterleri etkili bir şekilde yönetir.

IronXL, CSV'ye kaydederken büyük veri kumelemelerini yönetebilir mi?

Evet, IronXL, büyük veri kumelemelerini etkili bir şekilde yönetmek için tasarlanmıştır ve verileri CSV dosyalarina hız veya güvenilirlikten ödün vermeden kaydetmek için performans optimize edilmiş bir yöntem sunar.

IronXL, CSV işlemleri için birden fazla veri türünü destekliyor mu?

IronXL, karmasik veri kümelerini uyum sorunları yaşamadan CSV formatına kolayca dışa aktarabilen birden fazla veri türünü destekler.

IronXL, CSV dosyalarını işlerken Excel ile uyumlu mu?

IronXL tam Excel uyumluluğu sunar, bu da onu bir hesap tablosu verisi ile calisan geliştiriciler için çok yonlu bir arac haline getirir.

IronXL'nin c#'da CSV dosya yönetimi için güçlü bir çözüm olmasını sağlayan nedir?

IronXL'nin kapsamlı ve güçlü CSV işlem çözümü, kapsamlı API'si sayesindedir ve Excel uyumluluğu, büyük veri kümeleri desteği gibi ek işlevler sunar.

IronXL, C#'da CSV'ye kaydetme işlemini nasil kolaylaştırır?

IronXL, CSV dosya yönetiminde bulunan karmaşıklıkları soyutlayarak, verilerin CSV'ye etkin bir şekilde kaydedilmesini sağlamak için geliştiricilere doğrudan yöntemler sunarak süreci kolaylaştırır.

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