Altbilgi içeriğine atla
IRONXL KULLANARAK

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

Modern C# uygulamalarında CSV dosyalarını yönetmek, iş raporları üretmekten veritabanı kayıtlarını dışa aktarmaya kadar temel bir gerekliliktir. .NET temel dosya yazma yetenekleri sunsa da, CSV dosyalarını verimli bir şekilde ele almak, özellikle de özel karakterlerle uğraşıldığında, birden fazla veri türleriyle ve büyük veri kümeleriyle başa çıkmak için daha sağlam bir çözüme ihtiyaç duyulacaktır. IronXL, CSV işlemlerini yöneten kapsamlı bir API sağlar. Bu API, C#'ta CSV'ye kaydetme işlemi gibi işlemleri yönetirken tam Excel uyumluluğu da sunar.

Bu öğretici, C# uygulamalarınızda CSV dosyaları oluşturma, kaydetme ve yönetme için IronXL'in güçlü özelliklerini nasıl kullanacağınızı gösterir. Basit koleksiyonlardan karmaşık DataTable'lara kadar çeşitli veri kaynaklarını ele alma konusunda pratik teknikler öğreneceksiniz, tüm bunlar temiz ve sürdürmesi kolay bir kod koruyarak.

C# ile IronXL kullanarak CSV'ye Veri Kaydetme: Resim 1 - IronXL

IronXL ile Başlangıç

CSV işlemlerine dalmadan önce projenize IronXL yüklemeniz gerekir. Kütüphane, hem eski hem de modern uygulamalarla uyumlu hale getiren .NET Framework 4.6.2+ ve .NET Core 2+'yi destekler. IronXL, Windows, Linux ve macOS ortamlarında sorunsuz çalışarak mükemmel çapraz platform desteği de sunar.

C# ile IronXL kullanarak CSV'ye Veri Kaydetme: Resim 2 - Çapraz Platform

Visual Studio'yu açın, Paket Yöneticisi Konsolu'na gidin ve aşağıdaki komutu girin:

Install-Package IronXL.Excel

C# ile IronXL kullanarak CSV'ye Veri Kaydetme: Resim 3 - Kurulum

.NET CLI üzerinden:

dotnet add package IronXL.Excel

Kurulduktan sonra, tüm CSV yönetim özelliklerine, örneğin veri yazma, erişim sağlamak için C# dosyanıza IronXL ad alanını ekleyin:

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

Bu basit kurulum, güçlü elektronik tablo manipülasyon yeteneklerine anında erişim sağlar. Excel Interop veya karmaşık CSV çözümleme mantıklarını gerektiren geleneksel yaklaşımların aksine, IronXL, karmaşıklıkları arka planda ele alır ve içgüdüsel bir API sunar. Kütüphane, Microsoft Office yüklemesi gerektirmeden bağımsız çalışır, bu da sunucu kurulumları ve konteynerize 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 Verileri Nasıl Kaydedip Yazarsınız?

Sıfırdan CSV dosyaları oluşturmak veya yazmak, IronXL ile sezgisel bir deseni takip eder. Çalışma kitabı oluşturarak başlar, tüm verileri hücrelere ekler ve ardından CSV formatında kaydedersiniz. Bu yaklaşım, temel string birleştirme yöntemlerinden çok daha fazla kontrol sağlar.

Ana CSV oluşturma mantığına dalmadan önce, bir genel sınıf öğrenci yapısını kullanan basit bir model tanımı işte burada. Bu model, daha sonra CSV'ye dışa 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 nesnelerinden oluşan bir listeyi doldurabilir ve ardından IronXL'i kullanarak verimli bir şekilde bir CSV dosyasına dışa aktarabilirsiniz. Bu örnek, sınıf özelliklerini çalışma sayfası hücrelerine nasıl eşleştireceğ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. Kamu sınıfı öğrenci, veri modeliniz için bir şema tanımlar.
  2. Örnek verilerle bir öğrenci nesnesi listesi oluşturulur.
  3. IronXL'in 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 okuyabilirliği sağlamak için başlıklar manuel olarak eklenir.
  5. Öğrenci verileri, çalışma sayfasına satır satır yazılır.
  6. Son olarak, veriler SaveAsCsv() kullanılarak CSV dosyası olarak kaydedilir.

Çıktı

C# ile IronXL kullanarak CSV'ye Veri Kaydetme: Şekil 4 - Konsol Çıkışı

C# ile IronXL kullanarak CSV'ye Veri Kaydetme: Şekil 5 - Excel Çıkışı

Bu desen ölçeklenebilirdir; Böylece, bunu daha büyük veri kümeleri için kolayca adapte edebilir ya da bir veritabanından ya da API'den öğrenci verilerini çeken bir uygulamaya entegre edebilirsiniz.

Örneğin, dosyaya yazılırken bir hata oluştuğunda (örneğin, dosya kilitli veya yol geçersiz), nazikçe işlemleyebilirsiniz:

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.

İşte temel bir CSV dosyası oluşturmak için örnek kod.

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 dışa aktarır. WorkBook.Create() metodu, hafızada yeni bir elektronik tablo başlatır. Her hücre, dizeler, tamsayılar, ondalıklar ve hatta formüller gibi farklı veri türlerini barındırabilir. SaveAsCsv() çağrıldığında, IronXL otomatik olarak dönüşümü yönetir, herhangi bir özel karakteri nasıl kaçacağını ve veri bütünlüğünü nasıl koruyacağını uygun şekilde halleder.

Bu yaklaşımın güzelliği, esnekliğinde yatmaktadır. Verileri dışa aktarmadan önce bir elektronik tablo olarak işleyebilir, formülleri uygulayabilir, biçimlendirme veya doğrulama kuralları ekleyebilirsiniz. IronXL, dışa aktarma sürecinde formülleri otomatik olarak değerlendirir ve CSV'nizin hesaplanan değerleri formül metni yerine içerdiğini sağlar.

Çıktı

C# ile IronXL kullanarak CSV'ye Veri Kaydetme: Şekil 6 - CSV Çıkışı

Özel ayırıcı gereksinimleri için, IronXL standart virgüle alternatifler belirtmenize olanak tanır:

// 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 gereksinimleriyle uyumluluğu güvence altına alır. Kütüphane, farklı sistemler ve bölgeler arasında doğru karakter temsili sağlamak için kodlama sorunlarını otomatik olarak ele alır.

C# ile IronXL kullanarak CSV'ye Veri Kaydetme: Şekil 7 - Özellikler

DataTable'yi CSV'ye Nasıl Aktarırsınız?

DataTables, veritabanlarından veya iş mantığından gelen tablo verilerini saklamak için .NET uygulamalarında yaygın olarak kullanılır. IronXL, işlem boyunca sütun adlarını ve veri türlerini koruyarak sorunsuz bir DataTable-to-CSV dönüştürme sağlar.

// 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 amaçları için dışa aktarılması gereken bir gerçek dünyadaki senaryoyu gösterir. Kod, sütun başlıklarını ve satır verilerini koruyarak DataTable yapısı üzerinde döngü yapar. IronXL, farklı veri türlerinin uygun bir şekilde dönüşümünü yönetir, tarihler, ondalıklar ve dizelerin sonuçtaki CSV dosyasında doğru formatlandığını garanti eder.

Çıktı

C# ile IronXL kullanarak CSV'ye Veri Kaydetme: Şekil 8 - DataTable'dan CSV Çıkışı

Birden fazla ilişkili tablo veya karmaşık veri dönüşümlerini içeren daha karmaşık senaryolar için, IronXL'in hücre referanslama ve formül yeteneklerinden yararlanabilirsiniz:

// 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öntemlerine göre çok daha fazla kontrol sağlar. Hesaplanmış alanlar ekleyebilir, koşullu biçimlendirme mantığı uygulayabilir veya nihai dışa aktarmadan önce sütunları yeniden düzenleyebilirsiniz. IronXL dökümantasyonu, gelişmiş DataTable manipülasyon senaryoları için kapsamlı örnekler sağlar.

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

IronXL'in en güçlü özelliklerinden biri, aktif Excel dosyalarıyla sorunsuz çalışabilme ve onları veri bütünlüğünü koruyarak CSV formatına dönüştürebilme yeteneğidir. Bu, Excel raporları üreten ancak sonraki işlemler 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üklediğinizde, IronXL tüm hücre değerlerini, formüller tarafından hesaplananlar da dahil, korur. Kütüphane, dönüşüm sürecinde Excel formüllerini değerlendirir ve CSV'nizin gerçek hesaplanan değerleri içermesini sağlar. Bu, CSV dışa aktarmalarında formül metninin görünmesi gibi yaygın bir sorunu ortadan kaldırır.

Giriş

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

Çıktı

C# ile IronXL kullanarak CSV'ye Veri Kaydetme: Şekil 10 - Excel'den CSV'ye Çıkış

Birden fazla çalışma sayfası içeren çalışma kitapları için, IronXL her sayfayı akıllıca işler:

// 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ı dolaşır, her sayfa için ayrı CSV dosyaları oluşturur. Sayfa adları dosya adlarında korunarak, her bir CSV dosyasının kaynağını tanımak kolaylaştırılır. IronXL, XLSX, XLS, XLSM ve XLTX gibi çeşitli Excel formatlarını destekler, farklı Excel sürümleri ve kullanım durumlarıyla geniş bir uyumluluk sağlar. Belgelerde formatlar arasında dönüştürme hakkında daha fazla bilgi edinin.

Gelişmiş CSV Yönetim Teknikleri

Temel CSV oluşturmanın ötesinde, IronXL, genellikle üretim ortamlarında ortaya çıkan karmaşık senaryoları ele almak için sofistike özellikler sunar. Bu yetenekler, basit dosya yazma yaklaşımlarından farklıdır.

Özel karakterlerle uğraşırken, IronXL kaçış ve kodlamayı otomatik olarak halleder:

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, alıntıları doğru bir şekilde kaçar, çok satırlı içeriği idare eder ve Unicode karakterlerini korur. Bu otomatik işleme, manuel dize manipülasyonu yaklaşımlarıyla ortaya çıkan yaygın CSV ayrıştırma hatalarını önler.

Çıktı

C# ile IronXL kullanarak CSV'ye Veri Kaydetme: Şekil 11 - Özel Karakterler Çıkışı

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

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ümelerini işlerken bellek verimliliği çok önemli hale gelir. IronXL dahili bellek kullanımını optimize eder, ancak verileri parça parça işleyerek ve kaynakları doğru bir şekilde tahliye ederek performansı daha da artırabilirsiniz:

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 CSV'ye Veri Kaydetme: Şekil 12 - Büyük Veri Seti Çıkışı

Sonuç

IronXL, CSV dosya yönetimini C#'ta karmaşık bir görevden basit bir sürece 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 ayrıştırma mantığına duyulan ihtiyacı ortadan kaldırır. Kütüphanenin özel karakterler, veri türleri ve kodlama sorunlarının otomatik işlenmesi, farklı sistemler ve yerel ayarlarda güvenilir veri dışa aktarmayı sağlar.

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

CSV operasyonlarınızı kolaylaştırmaya hazır mısınız? ücretsiz deneme ile başlayın ve profesyonel destek ve güncellemeleri içerir.

C# ile IronXL kullanarak CSV'ye Veri Kaydetme: Şekil 13 - Lisanslama

Sıkça Sorulan Sorular

IronXL kullanarak verileri C# dilinde CSV'ye kaydetmenin avantajı nedir?

IronXL, CSV işlemlerini kolaylaştıran ve özel karakterleri, birden fazla veri türünü ve büyük veri kümelerini yönetmeyi kolaylaştıran kapsamlı bir API sunarak veri CSV'sine kaydetmeyi basitleştirir.

IronXL, CSV dosyalarındaki özel karakterleri nasıl yönetiyor?

IronXL, dosya işlemleri sırasında veri bütünlüğünü koruyarak, CSV dosyalarında özel karakterleri yönetirken sağlam ayrıştırma ve yazma yetenekleri sunar.

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

Evet, IronXL, büyük veri kümelerini verimli bir şekilde yönetmek üzere tasarlanmıştır ve veri CSV dosyalarına kaydederken performans-optimize edilmiş bir yaklaşım sunar.

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

IronXL, birden fazla veri türünü destekler ve geliştiricilerin karmaşık veri kümelerini, veri türü uyumluluk sorunlarıyla karşılaşmadan CSV formatına sorunsuzca dışa aktarmasına olanak tanır.

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

IronXL, tam Excel uyumluluğu sunar, bu da onun CSV dosyalarını Excel işlemleri ile birlikte işleyebileceği anlamına gelir, böylece geliştiricilerin tablo verileriyle çalışırken çok yönlü bir araç haline gelir.

IronXL'yi C# dilinde CSV dosya yönetimi için güçlü bir çözüm yapan nedir?

IronXL'nin kapsamlı API'si, karmaşık CSV işlemlerini basitleştirir ve büyük veri kümeleri için Excel uyumluluğu ve destek gibi ek özellikler sunar, böylece CSV dosya yönetimi için güçlü bir çözüm haline gelir.

IronXL, C# dilinde CSV'ye kaydetme sürecini nasıl kolaylaştırıyor?

IronXL, CSV dosya yönetiminde dahil olan karmaşıklıkları soyutlayarak, geliştiricilere, verileri CSV'ye verimli bir şekilde kaydetmek için doğru yöntemler sunarak süreci basitleştirir.

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