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.

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.

Visual Studio'yu açın, Paket Yöneticisi Konsolu'na gidin ve aşağıdaki komutu girin:
Install-Package IronXL.Excel

.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
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
Öğ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
Açıklama:
- Kamu sınıfı öğrenci, veri modeliniz için bir şema tanımlar.
- Örnek verilerle bir öğrenci nesnesi listesi oluşturulur.
- IronXL'nin
WorkBookveWorkSheetAPI'leri bellekte yapılandırılmış bir hesap tablosu oluşturmak için kullanılır. - CSV çıktısında okuyabilirliği sağlamak için başlıklar manuel olarak eklenir.
- Öğrenci verileri, çalışma sayfasına satır satır yazılır.
- Son olarak, veri
SaveAsCsv()kullanılarak bir CSV dosyası olarak kaydedilir.
Çıktı


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
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");
}
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ı

Ö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", ";");
// 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)
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.

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")
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ı

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")
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")
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ş

Çıktı

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
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")
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ı

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
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")
Çıktı

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.

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.




