Altbilgi içeriğine atla
IRONXL KULLANARAK

IronXL kullanarak C#'da CSV Formatında Veri Nasıl Kaydedilir

Managing CSV Files with IronXL in C

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# ile CSV'ye kaydetme gibi işlemlerin yanı sıra tam Excel uyumluluğuyla birlikte CSV işlemlerini ele alan kapsamlı bir API sağlayarak bu süreci basitleştirir.

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# IronXL kullanarak CSV Formatında Kaydetme: Görsel 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# IronXL kullanarak CSV Formatında Kaydetme: Görsel 2 - Çapraz Platform

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

// Install via Package Manager Console
Install-Package IronXl.Excel
// Install via Package Manager Console
Install-Package IronXl.Excel
$vbLabelText   $csharpLabel

C# IronXL kullanarak CSV Formatında Kaydetme: Görsel 3 - Kurulum

// Or via .NET CLI
dotnet add package IronXl.Excel
// Or via .NET CLI
dotnet add package IronXl.Excel
$vbLabelText   $csharpLabel

Kurulduktan sonra, tüm CSV yönetim özelliklerine erişmek için IronXL namespace'ini C# dosyanıza ekleyin, örneğin veri yazımı:

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 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 int Age { get; set; }
    public string? Grade { get; set; }
}
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'in WorkBook ve WorkSheet API'leri, hafızada 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, veri SaveAsCsv() kullanılarak bir CSV dosyası olarak kaydedilir.

Çıktı

C# IronXL kullanarak CSV Formatında Kaydetme: Görsel 4 - Konsol Çıktısı

C# IronXL kullanarak CSV Formatında Kaydetme: Görsel 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 hafızada yeni bir elektronik tabloyu 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ısında bulunduğunuzda, IronXL otomatik olarak dönüşümü gerçekleştirir, özel karakterleri düzgün bir şekilde kaçar ve veri bütünlüğünü sağlar.

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# IronXL kullanarak CSV Formatında Kaydetme: Görsel 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 semicolon delimiter for European locale compatibility
workbook.SaveAsCsv("sales_report.csv", ";");
$vbLabelText   $csharpLabel
// Save with tab delimiter
workbook.SaveAsCsv("sales_report.tsv", "\t");
// Save with tab delimiter
workbook.SaveAsCsv("sales_report.tsv", "\t");
' Save with tab delimiter
workbook.SaveAsCsv("sales_report.tsv", vbTab)
$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# IronXL kullanarak CSV Formatında Kaydetme: Görsel 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# IronXL kullanarak CSV Formatında Kaydetme: Görsel 8 - DataTable'den CSV Çıktısı

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# IronXL kullanarak CSV Formatında Kaydetme: Görsel 9 - Örnek Girdi

Çıktı

C# IronXL kullanarak CSV Formatında Kaydetme: Görsel 10 - Excel'den CSV Çıktısı

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# IronXL kullanarak CSV Formatında Kaydetme: Görsel 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# IronXL kullanarak CSV Formatında Kaydetme: Görsel 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? Ücretsiz bir deneme ile başlayın veya daha gelişmiş özellikleri keşfetmek için kapsamlı API belgelerini inceleyin. Üretim dağıtımları için, lisanslama $799 ile başlar ve profesyonel destek ile güncellemeleri içerir.

C# IronXL kullanarak CSV Formatında Kaydetme: Görsel 13 - Lisanslama

Sıkça Sorulan Sorular

IronXL nedir?

IronXL, geliştiricilerin .NET uygulamaları içinde Excel ve CSV dosyalarını okumalarını, düzenlemelerini ve oluşturmalarını sağlayan güçlü bir C# kütüphanesidir.

IronXL ile verileri CSV formatına nasıl kaydedebilirim?

IronXL ile verilerinizi bir IronXL WorkBook'a yukleyerek ve ardından 'SaveAs' yöntemiyle bir CSV dosyasına dışa aktararak CSV formatına kaydedebilirsiniz.

IronXL kullanmanın CSV yönetimindeki faydaları nelerdir?

IronXL, dosya manipülasyonunu kolaylaştıran, veri ithalat/ihracati ve çeşitli .NET uygulamalarıyla uyumluluk gibi özellikler sunarak CSV dosyalarını yönetmenin etkili bir yolunu sağlar.

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

Evet, IronXL, büyük veri kumelemelerini etkili bir şekilde yönetmek uzere tasarlanmistir, bu da onu kapsamlı veri koleksiyonlarını csv formatına kaydetmek için uygun hale getirir.

IronXL kullanarak Excel dosyalarını CSV'ye dönüştürmek mümkün müdür?

Evet, IronXL, Excel dosyasını bir WorkBook'a yükleyerek ve 'SaveAs' yöntemini kullanarak bir CSV olarak dışa aktarmanıza olanak tanır.

IronXL hangi programlama dili ile uyumlu?

IronXL, C# ile uyumlu olup .NET uygulamalarına sorunsuz bir şekilde entegre olmak üzere tasarlanmıştır.

IronXL, hem CSV dosyalarını okuma hem de yazma işlemlerini destekliyor mu?

Evet, IronXL, CSV dosyalarindan okuma ve yazma işlemlerini destekler ve CSV dosya yönetimi için kapsamlı bir çözüm sunar.

Bir C# projesinde IronXL'yi kullanmak için on koşullar nelerdir?

Bir C# projesinde IronXL'yi kullanmak için bir .NET altyapısını yüklemiş olmanız gerekir ve IronXL'yi NuGet üzerinden kurarak kolayca entegre edebilirsiniz.

IronXL, CSV dosyalarındaki veri analizleri için kullanılabilir mi?

Evet, IronXL, CSV dosyaları içinde veriyi programatik olarak manipüle ederek ve sorgulayarak veri analizi için kullanılabilir.

IronXL'nin CSV özelliklerinden hangi tür uygulamalar yararlanabilir?

Veri işleme araçları, raporlama sistemleri ve kurumsal uygulamalar gibi etkili CSV veri yönetimi gerektiren herhangi bir .NET uygulaması IronXL'den yararlanabilir.

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