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 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# IronXL kullanarak CSV Formatında 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# IronXL kullanarak CSV Formatında 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# IronXL kullanarak CSV Formatında Kaydetme: Resim 3 - Kurulum

.NET CLI ile de olabilir

dotnet add package IronXL.Excel

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

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 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 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'nin WorkBook ve WorkSheet API'leri bellekte yapılandırılmış bir hesap tablosu 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, veri SaveAsCsv() kullanılarak bir CSV dosyası olarak kaydedilir.

Çıktı

C# IronXL kullanarak CSV Formatında Kaydetme: Resim 4 - Konsol Çıkışı

C# IronXL kullanarak CSV Formatında Kaydetme: Resim 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() yöntemi, bellekte yeni bir hesap tablosunu 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, özel karakterleri doğru bir şekilde kaçar ve veri bütünlüğünü korur.

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

Çıktı

C# IronXL kullanarak CSV Formatında Kaydetme: Resim 10 - Excel'den CSV Çı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# IronXL kullanarak CSV Formatında Kaydetme: Resim 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# IronXL kullanarak CSV Formatında Kaydetme: Resim 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 veya daha gelişmiş özellikler keşfetmek için kapsamlı API dökümantasyonu'nu inceleyin. Üretim dağıtımları için, lisanslama $999 seviyesinde başlar ve profesyonel destek ve güncellemeleri içerir.

C# IronXL kullanarak CSV Formatında Kaydetme: Resim 13 - Lisanslama

Sıkça Sorulan Sorular

IronXL nedir?

IronXL, C# uygulamaları içinde geliştiricilere Excel ve CSV dosyalarını okuma, düzenleme ve oluşturma imkanı tanıyan güçlü bir C# kütüphanesidir.

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

IronXL kullanarak verilerinizi bir IronXL WorkBook'a yükleyip 'SaveAs' yöntemiyle CSV dosyası olarak dışa aktararak verileri CSV formatına kaydedebilirsiniz.

IronXL'yi CSV yönetiminde kullanmanın faydaları nelerdir?

IronXL, dosya manipülasyonu, veri içe/dışa aktarımı 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 işleyebilir mi?

Evet, IronXL, büyük veri kümelerini verimli bir şekilde işlemek için tasarlanmıştır, bu da onu geniş veri koleksiyonlarını CSV formatına kaydetmek için uygun hale getirir.

IronXL kullanarak Excel dosyalarını CSV'ye dönüştürebilir miyim?

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

IronXL hangi programlama dili ile uyumludur?

IronXL, C# ile uyumlu olup .NET uygulamalarına sorunsuz bir şekilde entegre olması için tasarlanmıştır.

IronXL hem CSV dosyalarını okuma hem de yazmayı destekliyor mu?

Evet, IronXL, CSV dosyalarını hem okumayı hem de yazmayı destekleyerek CSV dosya yönetimi için kapsamlı bir çözüm sunuyor.

Bir C# projesinde IronXL'yi kullanmak için ön koşullar var mı?

Bir C# projesinde IronXL kullanmak için .NET framework'ünü kurmanız ve NuGet üzerinden kolayca IronXL'i entegre etmeniz gerekiyor.

IronXL, CSV dosyalarında veri analizi için kullanılabilir mi?

Evet, IronXL, CSV dosyaları içinde verilerin programatik olarak sorunsuz bir şekilde manipüle edilmesine ve sorgulanmasına olanak tanıyarak veri analizi için kullanılabilir.

IronXL'nin CSV işlevselliğinden hangi tür uygulamalar yararlanabilir?

Verimli CSV veri yönetimi gerektiren veri işlem araçları, raporlama sistemleri ve kurumsal uygulamalar gibi her tür .NET uygulaması, IronXL'nin sunduğu işlevsellikten yararlanabilir.

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