Altbilgi içeriğine atla
IRONXL KULLANARAK

IronXL ile C# CSV Okuyucu ve Yazıcı: CSV Dosyaları Oluşturma, Dışa Aktarma ve Dönüştürme

Düz metin formatında saklanan virgülle ayrılmış değerler olan CSV dosyaları, uygulamalar, veritabanları ve raporlama sistemleri arasında veri alışverişi için en evrensel formatlardan biri olmaya devam ediyor. Kullanıcı listesi dışa aktarma, finansal raporlar oluşturma veya analitik platformlara veri aktarıma hazırlık yaparken, C# kullanarak programlanabilir olarak CSV dosyalarını oluşturma ve okuma yeteneği, modern .NET geliştirimi için önemlidir. Geliştiriciler genellikle basit bir var line yaklaşımı ile StringBuilder veya StreamWriter kullanarak CSV oluşturma işlemine başlar, ancak bu manuel yöntemler veri karmaşıklığı arttıkça hızla hataya açık hale gelir.

Bazı geliştiriciler, temel okuma/yazma işlemleri için CSV Yardımcı kütüphanelerine yönelir, ancak bu araçlar, özel ayrıştırıcılar gerektiren satır düzeyinde manuel eşleştirme ve işleme gerektirir, oysaki IronXL gibi elektronik tablo öncelikli yaklaşımlar gibi değil. Bu kılavuz, CSV dosyalarına nasıl veri yazılacağını, mevcut Excel çalışma kitaplarını CSV formatına dönüştürmenin ve nesneleri virgülle ayrılmış değerlere dışa aktarmanın nasıl yapılacağını gösterecek -- güçlü bir .NET kütüphanesi olan IronXL, Microsoft Excel kurulumuna gerek kalmadan elektronik tablo işlemlerini basitleştirir. IronXL, Windows, macOS, Linux ve Docker ve Azure gibi konteyner ortamlarında çalışır, bu da onu bulut tabanlı uygulamalar ve mikrosunucular mimarileri için ideal hale getirir.

CSV Formatı Nedir ve Neden Önemlidir?

Virgülle Ayrılmış Değerler (CSV) dosyası, farklı uygulamalar arasında tablo verilerini saklama ve değiştirme için en yaygın kullanılan formatlardan biridir. En basit biçimde, bir CSV dosyası, her satırda virgüllerle ayrılmış bir dizi değer içeren bir düz metin dosyasıdır. Bu basit yapı, CSV verilerinin çok çeşitli yazılım sistemleri arasında üretimini, okunmasını ve işlenmesini kolaylaştırır.

CSV formatı, hem hafif hem de insan tarafından okunabilir olması nedeniyle raporlamaları dışa aktarma, verileri veritabanları arasında aktarma ve analitik araçlar ile entegrasyon için popüler bir tercih haline gelmiştir. Bir CSV dosyasındaki her satır, tek bir kaydı temsil eder ve bu satırdaki her değer virgüllerle ayrılır. Dosyanın ilk satırı genellikle sütun adlarını listeleyen başlığa hizmet eder. Her bir sonraki satır ise, başlıkta belirtilen sütunlarla ilişkilendirilen gerçek verileri içerir.

CSV dosyalarının nasıl yapılandırıldığını anlamak, ayraç seçimleri, karakter kaçışı ve kodlama hakkında daha iyi kararlar vermenize yardımcı olur -- tüm bu faktörler, alt sistemlerinizin çıktınızı güvenilir bir şekilde ayırabilip ayıramayacağını etkiler. CSV dosya formatı gömülü virgüller, alanlar içindeki yeni satır karakterleri ve tırnaklanmış string değerler gibi kenar durumların ele alınması konusunda yönlendirme sağlayan RFC 4180 tarafından tanımlanmıştır.

IronXL'in .NET Projenize Kurulumu Nasıl Yapılır?

Microsoft'un .NET için paket yöneticisi NuGet üzerinden yeni bir projeye IronXL eklemek sadece birkaç saniye alır. Visual Studio'yu açın, ardından NuGet Paket Yöneticisi Konsoluna erişin ve aşağıdaki komutu çalıştırın:

Install-Package IronXL.Excel

C# IronXL Kullanarak CSV'ye Kaydet: Görüntü 1 - Kurulum

Alternatif olarak, Çözüm Gezgini'nde projenize sağ tıklayın, "NuGet Paketlerini Yönet" seçeneğini seçin, Tarama sekmesinde "IronXL" arayın ve Yükle'ye tıklayın. IronXL, .NET Framework 4.6.2+, .NET Core, .NET 5/6/7/8/10 destekler ve herhangi bir platformda çalışır, harici bağımlılıklar veya COM ile etkileşim gerektirmez.

Kurulduktan sonra, using ifadesini kullanarak kod dosyanıza IronXL ad alanını ekleyin:

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

Bu tek alan adı, elektronik tablo oluşturma ve CSV dışa aktarma operasyonları için gerekli tüm sınıflara erişim sağlar. CSV dosyalarını manuel olarak yazmak için StreamWriter veya StringBuilder'a dayanan yaklaşımların aksine, IronXL, doğru CSV biçimlendirmesinin tüm karmaşıklığını otomatik olarak ele alır -- özel karakterleri kaçırma, veri türlerini koruma ve formülleri dışa aktarmadan önce değerlendirme dahil.

IronXL belgeleri, hücre stilini, formül değerlendirmesini, şifre korumasını ve grafik oluşturmayı içeren gelişmiş özellikler de dahil olmak üzere tüm API yüzeyini kapsar. Hızlı referans için, IronXL örnek kütüphanesi, ortak elektronik tablo senaryolarını kapsayan çalışmaya hazır kod örnekleri sağlar.

IronXL Hangi Platformları Destekliyor?

IronXL, .NET'in desteklendiği herhangi bir platformda çalışır. Bu, Windows masaüstü ve sunucu ortamlarını, macOS geliştirme makinelerini ve Docker konteynerleri dahil olmak üzere Linux sunucularını içermektedir. Azure veya AWS üzerinde bulut tabanlı uygulamalar geliştiren ekipler için, IronXL herhangi bir ek yapılandırma gerektirmeden çalışır. Kütüphane, herhangi bir COM etkileşimi, Microsoft Office kurulumu veya harici sistem bağımlılığı gerektirmez -- bu da standart paket yönetimi iş akışlarıyla dağıtımı ve güncellemeyi basitleştirir.

Sıfırdan Yeni Bir CSV Dosyası Nasıl Oluşturursunuz?

Programlanabilir yeni bir CSV dosyası oluşturma, üç adımı içerir: bir çalışma kitabı oluşturma, verilerle doldurma ve CSV formatında kaydetme. IronXL'nin API'si, tanıdık Excel nesne modelini yansıtır, bu da geliştiricilerin elektronik tablo kavramlarıyla çalışan kod yazmalarını kolaylaştırır, bir konsol uygulaması veya herhangi bir .NET proje türünde.

Çalışan kayıtları listesini CSV'ye dışa aktarmanız gereken bir senaryoyu düşünün. İşte üst düzey ifadeler kullanarak eksiksiz bir örnek:

using IronXL;

// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet sheet = workBook.CreateWorkSheet("Employees");

// Add header row with column names
sheet["A1"].Value = "EmployeeID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Department";
sheet["D1"].Value = "Salary";

// Add employee data rows
sheet["A2"].Value = 1001;
sheet["B2"].Value = "Sarah Johnson";
sheet["C2"].Value = "Engineering";
sheet["D2"].Value = 85000;

sheet["A3"].Value = 1002;
sheet["B3"].Value = "Michael Chen";
sheet["C3"].Value = "Marketing";
sheet["D3"].Value = 72000;

sheet["A4"].Value = 1003;
sheet["B4"].Value = "Emily Rodriguez";
sheet["C4"].Value = "Finance";
sheet["D4"].Value = 91000;

// Save as CSV file
workBook.SaveAsCsv("employees.csv", ",");
using IronXL;

// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet sheet = workBook.CreateWorkSheet("Employees");

// Add header row with column names
sheet["A1"].Value = "EmployeeID";
sheet["B1"].Value = "Name";
sheet["C1"].Value = "Department";
sheet["D1"].Value = "Salary";

// Add employee data rows
sheet["A2"].Value = 1001;
sheet["B2"].Value = "Sarah Johnson";
sheet["C2"].Value = "Engineering";
sheet["D2"].Value = 85000;

sheet["A3"].Value = 1002;
sheet["B3"].Value = "Michael Chen";
sheet["C3"].Value = "Marketing";
sheet["D3"].Value = 72000;

sheet["A4"].Value = 1003;
sheet["B4"].Value = "Emily Rodriguez";
sheet["C4"].Value = "Finance";
sheet["D4"].Value = 91000;

// Save as CSV file
workBook.SaveAsCsv("employees.csv", ",");
Imports IronXL

' Create a new workbook and worksheet
Dim workBook As WorkBook = WorkBook.Create()
Dim sheet As WorkSheet = workBook.CreateWorkSheet("Employees")

' Add header row with column names
sheet("A1").Value = "EmployeeID"
sheet("B1").Value = "Name"
sheet("C1").Value = "Department"
sheet("D1").Value = "Salary"

' Add employee data rows
sheet("A2").Value = 1001
sheet("B2").Value = "Sarah Johnson"
sheet("C2").Value = "Engineering"
sheet("D2").Value = 85000

sheet("A3").Value = 1002
sheet("B3").Value = "Michael Chen"
sheet("C3").Value = "Marketing"
sheet("D3").Value = 72000

sheet("A4").Value = 1003
sheet("B4").Value = "Emily Rodriguez"
sheet("C4").Value = "Finance"
sheet("D4").Value = 91000

' Save as CSV file
workBook.SaveAsCsv("employees.csv", ",")
$vbLabelText   $csharpLabel

WorkBook.Create() yöntemi, tamamen bellekte yeni bir elektronik tablo başlatır, son kaydetme işlemine kadar geçici dosya veya disk giriş/çıkışı gerektirmez. CreateWorkSheet() yöntemi çalışma kitabına adlandırılmış bir çalışma sayfası ekler -- bu ad, çok sayfalı çalışma kitaplarını CSV'ye aktarırken ilgili hale gelir.

Çıktı

C# IronXL Kullanarak CSV'ye Kaydet: Görüntü 2 - CSV Çıktısı

sheet["A1"] gibi hücre referansları, belirli hücrelere doğrudan erişim sağlar ve değerler atanabilir. IronXL, dizgiler, tam sayılar, onluk sayılar, tarihler ve boolean değerleri dahil çeşitli veri türlerini kabul eder ve her tür için uygun formatı otomatik olarak işler. Daha karmaşık veri girişi senaryoları için, toplu hücre atama teknikleri için IronXL aralık işlemleri rehberine bakın.

SaveAsCsv() metodu çalışma tabakası içeriğini bir dosyaya dışa aktarır. İlk parametre çıktı dosya adı ve yolunu belirtirken, ikinci parametre ayırıcı karakteri tanımlar. IronXL, CSV ayrıştırmayı bozabilecek özel karakterlerin kaçışını ve verinin bütünlüğünü dışa aktarma süreci boyunca koruma dahil olmak üzere doğru formatlamayı otomatik olarak ele alır.

Bir Nesne Listesini CSV'ye Nasıl Dışa Aktarırsınız?

Kesin türlendirilmiş nesnelerle çalışırken, bir koleksiyonda yineleme yapmak ve her öğeyi çalışma sayfasına yazmak için bir foreach döngüsü kullanabilirsiniz. İşte genel string özelliklerine sahip bir Student sınıfı kullanılarak bir örnek:

using IronXL;

// Define the Student class with public string properties
public class Student
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
}

// Create sample data
var students = new List<Student>
{
    new Student { FirstName = "John", LastName = "Smith", Email = "john@example.com" },
    new Student { FirstName = "Jane", LastName = "Doe", Email = "jane@example.com" }
};

WorkBook workBook = WorkBook.Create();
WorkSheet sheet = workBook.DefaultWorkSheet;

// Add header row
sheet["A1"].Value = "FirstName";
sheet["B1"].Value = "LastName";
sheet["C1"].Value = "Email";

// Use foreach to iterate through the list and write each item
int row = 2;
foreach (var item in students)
{
    sheet[$"A{row}"].Value = item.FirstName;
    sheet[$"B{row}"].Value = item.LastName;
    sheet[$"C{row}"].Value = item.Email;
    row++;
}

workBook.SaveAsCsv("students.csv", ",");
using IronXL;

// Define the Student class with public string properties
public class Student
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
}

// Create sample data
var students = new List<Student>
{
    new Student { FirstName = "John", LastName = "Smith", Email = "john@example.com" },
    new Student { FirstName = "Jane", LastName = "Doe", Email = "jane@example.com" }
};

WorkBook workBook = WorkBook.Create();
WorkSheet sheet = workBook.DefaultWorkSheet;

// Add header row
sheet["A1"].Value = "FirstName";
sheet["B1"].Value = "LastName";
sheet["C1"].Value = "Email";

// Use foreach to iterate through the list and write each item
int row = 2;
foreach (var item in students)
{
    sheet[$"A{row}"].Value = item.FirstName;
    sheet[$"B{row}"].Value = item.LastName;
    sheet[$"C{row}"].Value = item.Email;
    row++;
}

workBook.SaveAsCsv("students.csv", ",");
Imports IronXL

' Define the Student class with public string properties
Public Class Student
    Public Property FirstName As String
    Public Property LastName As String
    Public Property Email As String
End Class

' Create sample data
Dim students As New List(Of Student) From {
    New Student With {.FirstName = "John", .LastName = "Smith", .Email = "john@example.com"},
    New Student With {.FirstName = "Jane", .LastName = "Doe", .Email = "jane@example.com"}
}

Dim workBook As WorkBook = WorkBook.Create()
Dim sheet As WorkSheet = workBook.DefaultWorkSheet

' Add header row
sheet("A1").Value = "FirstName"
sheet("B1").Value = "LastName"
sheet("C1").Value = "Email"

' Use For Each to iterate through the list and write each item
Dim row As Integer = 2
For Each item In students
    sheet($"A{row}").Value = item.FirstName
    sheet($"B{row}").Value = item.LastName
    sheet($"C{row}").Value = item.Email
    row += 1
Next

workBook.SaveAsCsv("students.csv", ",")
$vbLabelText   $csharpLabel

Bu desen, her bir öğeye yineleme yaparak ve özelliklerini belirli sütunlara haritalayarak nesne listesini CSV verilerine nasıl dışa aktarmanız gerektiğini gösterir. foreach döngüsü koleksiyondaki her öğrenciyi işler ve string interpolasyonu hücre referanslarını dinamik olarak oluşturur. Reflection tabanlı özelliği haritalama veya anonim türler içeren senaryolar için bu yaklaşımı uyarlayarak, türün metadatasından gelen PropertyInfo nesneleri üzerinde yineleme yapabilirsiniz.

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

Excel elektronik tablolarını CSV formatına dönüştürmek, eski sistemlerle entegrasyon, veritabanı içe aktarımlarına hazırlık veya insan tarafından oluşturulan raporlardan makine tarafından okunabilir çıktı üretmek için yaygın bir gereksinimdir. IronXL, veri doğruluğunu korurken bu dönüşümü minimal kodla işler.

using IronXL;

// Load an existing Excel file
WorkBook workBook = WorkBook.Load("Monthly_Report_20251012.xlsx");

// Convert and save as CSV format
workBook.SaveAsCsv("Monthly_Report_20251012.csv");
using IronXL;

// Load an existing Excel file
WorkBook workBook = WorkBook.Load("Monthly_Report_20251012.xlsx");

// Convert and save as CSV format
workBook.SaveAsCsv("Monthly_Report_20251012.csv");
Imports IronXL

' Load an existing Excel file
Dim workBook As WorkBook = WorkBook.Load("Monthly_Report_20251012.xlsx")

' Convert and save as CSV format
workBook.SaveAsCsv("Monthly_Report_20251012.csv")
$vbLabelText   $csharpLabel

Load() yöntemi, XLSX, XLS, XLSM dahil olmak üzere çeşitli formatlarda Excel dosyalarını ve mevcut CSV veya TSV dosyalarını açar. Bu esneklik, orijinal formatlarından bağımsız olarak giriş dosyalarını kabul eden standardize edilmiş dışa aktarma hatları oluşturmanızı sağlar. IronXL belgelerinde desteklenen Excel formatlarının tam listesini görün.

Giriş

C# IronXL Kullanarak CSV'ye Kaydet: Görüntü 3 - Örnek Excel Girişi

Çıktı

C# IronXL Kullanarak CSV'ye Kaydet: Görüntü 4 - Excel'den CSV'ye Çıktı

IronXL'in dönüştürme sırasında öne çıkan özelliklerinden biri otomatik formül değerlendirmesidir. CSV'ye kaydederken, IronXL elektronik tabloda bulunan formülleri hesaplar ve görünen değerleri formül metni yerine dışa aktarır. Örneğin, =SUM(A1:A10) içeren bir hücre, hesaplanan toplam olarak dışa aktarılacak ve CSV dosyasının derhal kullanılabilecek işlem yapılabilir veriler içermesini sağlayacaktır.

Çoklu Tabaka Dışa Aktarımı Nasıl Çalışır?

Birden fazla çalışma tabakası içeren Excel çalışma kitaplarıyla çalışırken, IronXL her tabaka için ayrı CSV dosyaları oluşturur. Bu yetenek, özellikle finansal raporlar, bölgesel satış verileri veya her bölüm veya kategori tek bir ana çalışma kitabı içinde kendi çalışma tabakasını işgal ederse herhangi bir senaryo için değerlidir.

using IronXL;

// Load a multi-sheet workbook (e.g., annual sales by region)
WorkBook workBook = WorkBook.Load("annual_sales.xlsx");

// Export all sheets to CSV -- creates separate files for each sheet
workBook.SaveAsCsv("sales_export.csv");
// Output: sales_export.North.csv, sales_export.South.csv, sales_export.East.csv, etc.

// Or export a specific worksheet
WorkSheet northRegion = workBook.GetWorkSheet("North");
northRegion.SaveAsCsv("north_region_sales.csv");
using IronXL;

// Load a multi-sheet workbook (e.g., annual sales by region)
WorkBook workBook = WorkBook.Load("annual_sales.xlsx");

// Export all sheets to CSV -- creates separate files for each sheet
workBook.SaveAsCsv("sales_export.csv");
// Output: sales_export.North.csv, sales_export.South.csv, sales_export.East.csv, etc.

// Or export a specific worksheet
WorkSheet northRegion = workBook.GetWorkSheet("North");
northRegion.SaveAsCsv("north_region_sales.csv");
Imports IronXL

' Load a multi-sheet workbook (e.g., annual sales by region)
Dim workBook As WorkBook = WorkBook.Load("annual_sales.xlsx")

' Export all sheets to CSV -- creates separate files for each sheet
workBook.SaveAsCsv("sales_export.csv")
' Output: sales_export.North.csv, sales_export.South.csv, sales_export.East.csv, etc.

' Or export a specific worksheet
Dim northRegion As WorkSheet = workBook.GetWorkSheet("North")
northRegion.SaveAsCsv("north_region_sales.csv")
$vbLabelText   $csharpLabel

Adlandırma kuralı her çalışma tabakasının adını temel dosya adına ekleyerek, işleme veya arşivleme sırasında dışa aktarılan her dosyanın kaynağını tanımlamayı basit hale getirir. Yalnızca belirli çalışma sayfalarının gerektiği hedeflenmiş dışa aktarmalar için, istenen çalışma sayfasını GetWorkSheet() kullanarak alın ve bu sayfa nesnesi üzerinde doğrudan SaveAsCsv() çağrısı yapın.

IronXL dökümantasyonunda Excel formatları arasında dönüştürme hakkında daha fazla bilgi edinin.

Bir DataTable'ı CSV'ye Nasıl Dışa Aktarırsınız?

Kurumsal uygulamalar sıklıkla veritabanı sorgularından, API yanıtlarından veya bellek içi veri işlemeden doldurulmuş DataTable nesneleriyle çalışır. IronXL, bu .NET veri yapıları ve dosya dışa aktarımları arasında köprü kurarak, uygulama belleğinden paylaşılabilir CSV dosyalarına güvenilir bir yol sunar. Bu yöntem StreamWriter ile CSV dosyalarını manuel olarak yazmaktan daha güvenilirdir çünkü IronXL, karakter kaçırma, ayırıcı yönetimi ve kodlamayı otomatik olarak ele alır.

using IronXL;
using System.Data;

// Create and populate a DataTable with columns
DataTable products = new DataTable();
products.Columns.Add("SKU", typeof(string));
products.Columns.Add("ProductName", typeof(string));
products.Columns.Add("Price", typeof(decimal));
products.Columns.Add("InStock", typeof(int));

// Add rows of data
products.Rows.Add("SKU-001", "Wireless Mouse", 29.99m, 150);
products.Rows.Add("SKU-002", "Mechanical Keyboard", 89.99m, 75);
products.Rows.Add("SKU-003", "USB-C Hub", 45.99m, 200);

// Create workbook and transfer DataTable contents
WorkBook workBook = WorkBook.Create();
WorkSheet sheet = workBook.DefaultWorkSheet;

// Add header row from column names
for (int col = 0; col < products.Columns.Count; col++)
{
    sheet.SetCellValue(0, col, products.Columns[col].ColumnName);
}

// Add data rows using nested loops
for (int row = 0; row < products.Rows.Count; row++)
{
    for (int col = 0; col < products.Columns.Count; col++)
    {
        sheet.SetCellValue(row + 1, col, products.Rows[row][col].ToString());
    }
}

// Export to CSV
workBook.SaveAsCsv("product_inventory.csv", ",");
using IronXL;
using System.Data;

// Create and populate a DataTable with columns
DataTable products = new DataTable();
products.Columns.Add("SKU", typeof(string));
products.Columns.Add("ProductName", typeof(string));
products.Columns.Add("Price", typeof(decimal));
products.Columns.Add("InStock", typeof(int));

// Add rows of data
products.Rows.Add("SKU-001", "Wireless Mouse", 29.99m, 150);
products.Rows.Add("SKU-002", "Mechanical Keyboard", 89.99m, 75);
products.Rows.Add("SKU-003", "USB-C Hub", 45.99m, 200);

// Create workbook and transfer DataTable contents
WorkBook workBook = WorkBook.Create();
WorkSheet sheet = workBook.DefaultWorkSheet;

// Add header row from column names
for (int col = 0; col < products.Columns.Count; col++)
{
    sheet.SetCellValue(0, col, products.Columns[col].ColumnName);
}

// Add data rows using nested loops
for (int row = 0; row < products.Rows.Count; row++)
{
    for (int col = 0; col < products.Columns.Count; col++)
    {
        sheet.SetCellValue(row + 1, col, products.Rows[row][col].ToString());
    }
}

// Export to CSV
workBook.SaveAsCsv("product_inventory.csv", ",");
Imports IronXL
Imports System.Data

' Create and populate a DataTable with columns
Dim products As New DataTable()
products.Columns.Add("SKU", GetType(String))
products.Columns.Add("ProductName", GetType(String))
products.Columns.Add("Price", GetType(Decimal))
products.Columns.Add("InStock", GetType(Integer))

' Add rows of data
products.Rows.Add("SKU-001", "Wireless Mouse", 29.99D, 150)
products.Rows.Add("SKU-002", "Mechanical Keyboard", 89.99D, 75)
products.Rows.Add("SKU-003", "USB-C Hub", 45.99D, 200)

' Create workbook and transfer DataTable contents
Dim workBook As WorkBook = WorkBook.Create()
Dim sheet As WorkSheet = workBook.DefaultWorkSheet

' Add header row from column names
For col As Integer = 0 To products.Columns.Count - 1
    sheet.SetCellValue(0, col, products.Columns(col).ColumnName)
Next

' Add data rows using nested loops
For row As Integer = 0 To products.Rows.Count - 1
    For col As Integer = 0 To products.Columns.Count - 1
        sheet.SetCellValue(row + 1, col, products.Rows(row)(col).ToString())
    Next
Next

' Export to CSV
workBook.SaveAsCsv("product_inventory.csv", ",")
$vbLabelText   $csharpLabel

Bu model, sütun başlıklarını önce aktararak ve ardından her veri satırını sistematik olarak doldurarak DataTable yapısı boyunca yineleme yapar. DefaultWorkSheet özelliği, yeni oluşturulmuş bir çalışma kitabındaki ilk çalışma sayfasına hızlı erişim sağlar, basit senaryolarda açık çalışma sayfası oluşturma gereksinimini ortadan kaldırır.

Çıktı

C# IronXL Kullanarak CSV'ye Kaydet: Görüntü 5 - DataTable'dan CSV'ye Çıktı

IronXL, veri aktarım süreci sırasında veri türlerini koruyarak sayısal değerlerin hassasiyetini ve tarihlerinin biçimlendirmelerini muhafaza eder. Bu yaklaşım, basit bir arama sorgusundan gelen düzinelerce satıra veya büyük veri dışa aktarımlarından gelen binlerce kayda sahip olan herhangi bir boyuttaki DataTable'lar için iyi ölçeklenir. Dışa aktarım öncesinde ek elektronik tablo manipülasyonu için hücre biçimlendirme seçeneklerini ve aralık işlemlerini keşfedin.

CSV Dosyalarında Özel Ayırıcılar Nasıl Ele Alınır?

Farklı sistemler ve bölgesel standartlar, farklı ayırıcı karakterler gerektirir. Pek çok ülkede noktalı virgül standart ayırıcı olarak kullanılırken, Avrupa bölgelerinde virgüller sayısal değerlerde ondalık ayırıcı olarak kullanıldığı için genellikle noktalı virgüller tercih edilir. Kaynak verilerinde alan değerleri içinde virgüller bulunan durumlarda, sekme ile ayrılmış dosyalar (TSV) popülerdir. IronXL'ın SaveAsCsv() yöntemi, her satır çıktısını ele almak için ek bir kod gerektirmeksizin tüm bu senaryolara uygundur.

using IronXL;

WorkBook workBook = WorkBook.Load("data.xlsx");

// Standard comma delimiter (default format)
workBook.SaveAsCsv("output_comma.csv", ",");

// Semicolon delimiter (common in European systems)
workBook.SaveAsCsv("output_semicolon.csv", ";");

// Tab delimiter (TSV format)
workBook.SaveAsCsv("output_tab.tsv", "\t");

// Pipe delimiter (used in some data interchange formats)
workBook.SaveAsCsv("output_pipe.csv", "|");
using IronXL;

WorkBook workBook = WorkBook.Load("data.xlsx");

// Standard comma delimiter (default format)
workBook.SaveAsCsv("output_comma.csv", ",");

// Semicolon delimiter (common in European systems)
workBook.SaveAsCsv("output_semicolon.csv", ";");

// Tab delimiter (TSV format)
workBook.SaveAsCsv("output_tab.tsv", "\t");

// Pipe delimiter (used in some data interchange formats)
workBook.SaveAsCsv("output_pipe.csv", "|");
Imports IronXL

Dim workBook As WorkBook = WorkBook.Load("data.xlsx")

' Standard comma delimiter (default format)
workBook.SaveAsCsv("output_comma.csv", ",")

' Semicolon delimiter (common in European systems)
workBook.SaveAsCsv("output_semicolon.csv", ";")

' Tab delimiter (TSV format)
workBook.SaveAsCsv("output_tab.tsv", vbTab)

' Pipe delimiter (used in some data interchange formats)
workBook.SaveAsCsv("output_pipe.csv", "|")
$vbLabelText   $csharpLabel

SaveAsCsv()'ın ikinci parametresi, herhangi bir string'i ayırıcı olarak kabul eder ve farklı sistemler ve bölgesel gereksinimlerle entegrasyon için tam esneklik sağlar. Uluslararası dağıtım için dosyalar oluştururken, hedef sistemin yerel beklentilerini göz önünde bulundurun -- Avrupa finansal sistemleri genellikle noktalı virgül ayırmayı beklerken, Kuzey Amerika sistemleri genellikle varsayılan olarak virgüllere bırakır. CSV için RFC 4180 standardı, ayırıcıları içeren değerlerin ayrıştırma hatalarını önlemek için nasıl belirtilmesi gerektiğini açıklar.

C#'ta CSV Dosyası Oluşturma için En İyi Uygulamalar Nelerdir?

C# dilinde CSV dosyaları ile çalışırken, belirlenmiş uygulamaları izlemek verilerinizi doğru, okunabilir ve diğer sistemlerle uyumlu tutar. Aşağıdaki tablo, en önemli hususları özetlemektedir:

C# ile CSV Dosya Üretimi En İyi Uygulamalar
Uygulama Neden Önemlidir IronXL Yaklaşımı
Tutarlı ayırıcılar Aşağı akış sistemlerinde ayrıştırma hatalarını önler SaveAsCsv()'e ikinci parametre olarak ayırıcıyı aktarın
Özel değerleri belirtin Verilerde virgüller bulunduğunda alan bütünlüğünü korur IronXL tarafından otomatik olarak ele alınır
Tutarlı tarih formatları Yereller arasında ve sistemlerde belirsizlikten kaçınır Çıktıyı kontrol etmek için kaydetmeden önce hücre biçimlendirin
Değerlerde yeni satırları önleyin Satır yapısı bozulmasını önler IronXL dışa aktarım sırasında gömülü yeni satırları kaçar
Hatalar ile ilgilenin Dosya akışlarının düzgün kapanmasını sağlar IronXL kaynakları dahili olarak boşaltır
Kaydetmeden önce doğrulama yapın Veri sorunlarını tüketicilere ulaşmadan önce yakalar Önce hücre değerlerini doğrulamak için aralık işlemlerini kullanın

Temel bilgilerin ötesinde, uluslararası hedef kitler için kodlamayı açıkça belirtmeyi düşünün. Microsoft Excel'de ASCII dışı karakterlerin doğru görüntülenmesi için genellikle UTF-8 with BOM gereklidir. Milyonlarca satır içeren yüksek hacimli dışa aktarımlar için, tek bir büyük CSV yazmak yerine verileri birden fazla dosyaya bölmeyi düşünün -- bu, dosya boyutlarını yönetilebilir tutar ve hem üretim hem de tüketim sırasında bellek baskısını azaltır.

Veri hatlarını oluşturan ekipler için, IronXL eşzamanlı ve akış dokümantasyonu, tüm çalışma kitaplarını bellekten yüklemeden büyük veri kümesi işleme desenlerini kapsar. IronXL örnek kütüphanesi; toplu işleme, zamanlanmış dışa aktarım işleri ve Entity Framework gibi popüler ORM çerçeveleri ile entegrasyon için ek desenler içerir.

.NET ekosisteminin CSV işleme araçları ile çalışırken, IronXL'nin daha düşük seviyeli yaklaşımlarla karşılaştırıldığında nasıl uyduğunu anlamak, her senaryo için doğru aracı seçmenize yardımcı olur. Herhangi bir Excel katılımı olmadan saf CSV oluşturma için, manuel alıntılama mantığı ile StreamWriter yeterli olabilir. Excel formatı uyumluluğu, formül değerlendirmesi veya zengin biçimlendirmeyi içeren herhangi bir şey için IronXL daha güvenilir bir temel sağlar.

IronXL ile Mevcut Bir CSV Dosyasını Nasıl Okursunuz?

Uygulamanıza CSV verilerini geri yüklemek, başka bir elektronik tablo formatı yüklemekle aynı deseni izler. IronXL'ın Load() yöntemi, CSV dosyalarını tanır ve bunları standart çalışma kitabı/çalışma sayfası modeline ayrıştırır, Excel dosyaları için kullanılan aynı API'yi kullanarak bireysel hücreler ve aralıklara erişim sağlar.

using IronXL;

// Load an existing CSV file
WorkBook workBook = WorkBook.Load("employees.csv");
WorkSheet sheet = workBook.DefaultWorkSheet;

// Access specific cells by reference
string firstHeader = sheet["A1"].StringValue;

// Iterate through all rows
foreach (var row in sheet.Rows)
{
    foreach (var cell in row)
    {
        Console.Write(cell.StringValue + "\t");
    }
    Console.WriteLine();
}

// Access a range of cells
var nameColumn = sheet["B2:B100"];
foreach (var cell in nameColumn)
{
    Console.WriteLine(cell.StringValue);
}
using IronXL;

// Load an existing CSV file
WorkBook workBook = WorkBook.Load("employees.csv");
WorkSheet sheet = workBook.DefaultWorkSheet;

// Access specific cells by reference
string firstHeader = sheet["A1"].StringValue;

// Iterate through all rows
foreach (var row in sheet.Rows)
{
    foreach (var cell in row)
    {
        Console.Write(cell.StringValue + "\t");
    }
    Console.WriteLine();
}

// Access a range of cells
var nameColumn = sheet["B2:B100"];
foreach (var cell in nameColumn)
{
    Console.WriteLine(cell.StringValue);
}
Imports IronXL

' Load an existing CSV file
Dim workBook As WorkBook = WorkBook.Load("employees.csv")
Dim sheet As WorkSheet = workBook.DefaultWorkSheet

' Access specific cells by reference
Dim firstHeader As String = sheet("A1").StringValue

' Iterate through all rows
For Each row In sheet.Rows
    For Each cell In row
        Console.Write(cell.StringValue & vbTab)
    Next
    Console.WriteLine()
Next

' Access a range of cells
Dim nameColumn = sheet("B2:B100")
For Each cell In nameColumn
    Console.WriteLine(cell.StringValue)
Next
$vbLabelText   $csharpLabel

Bu okuma ve yazma işlemleri arasındaki tutarlılık, ekibinizin tüm elektronik tablo ile ilgili görevler için yalnızca tek bir API öğrenmesi gerektiği anlamına gelir. CSV dosyalarını açan aynı WorkBook.Load() yöntemi, aynı zamanda XLSX, XLS ve XLSM formatlarını da ele alır -- birden fazla formatta giriş kabul eden boru hatları oluştururken kullanışlıdır. IronXL ile CSV dosyalarını okuma hakkında belgelerden daha fazla bilgi edinin.

Sonraki Adımlarınız Neler?

Bu kılavuz, C# içinde IronXL kullanılarak CSV dosyası oluşturma ve yönetme için temel desenleri kapsamıştır:

  • Bellekte yeni elektronik tablolar başlatmak için WorkBook.Create()
  • Herhangi bir desteklenen formatta mevcut Excel ve CSV dosyalarını açmak için WorkBook.Load()
  • Özelleştirilebilir ayırıcılarla veri dışa aktarma için SaveAsCsv()
  • Hedefli dönüştürmeler için GetWorkSheet() kullanılarak bireysel çalışma sayfası dışa aktarma
  • Veritabanından-CVS'ye iş akışları için DataTable yineleme kalıpları
  • foreach döngüleri kullanarak nesne listesi dışa aktarma
  • Uygulamanıza geri CSV verilerini tam aralık erişimi ile yüklemek

Bu teknikleri uygulamaya koymak için, test süresiz zaman sınırı olmadan elektronik tabloların tüm yeteneklerini incelemek üzere ücretsiz bir IronXL deneme sürümü başlatın. Üretim dağıtımına hazır olduğunuzda, ekip boyutunuz ve kullanım gereksinimleriniz için doğru planı bulmak üzere IronXL lisans seçeneklerini inceleyin.

Hücre biçimlendirme, formül oluşturma, grafik oluşturma ve parola koruma gibi gelişmiş senaryoları kapsayan ek örnekler için IronXL dökümantasyonuna ve tüm kod örnekleri kütüphanesine göz atın. IronXL eğitim serisi, DataTable dışa aktarımlarının yanı sıra format dönüştürmeleri ve CSV dosyalarına yazma gibi daha karmaşık entegrasyon senaryoları ile ilgili yürümenizi sağlar.

Sıkça Sorulan Sorular

CSV dosyası nedir ve neden önemlidir?

CSV dosyası veya virgülle ayrılmış değerler dosyası, uygulamalar, veritabanları ve raporlama sistemleri arasında veri alışverişi için kullanılan bir düz metin formatıdır. Evrensel formatı nedeniyle listeleri ihraç etmede, raporlar oluşturmada ve analizler için veri hazırlamada faydalıdır.

C# kullanarak nasıl bir CSV dosyası oluşturabilirsiniz?

IronXL kullanarak, bir WorkBook yaratıp, bir WorkSheet'e veri yerleştirip ve SaveAsCsv() yöntemi ile istenen çıkış yolu ve sınırlayıcı karakteri ile çağırarak C# içinde bir CSV dosyası oluşturabilirsiniz.

CSV oluşturmak için IronXL kullanımının avantajları nelerdir?

IronXL, karmaşık veri yapılarını geleneksel manuel yöntemlerden daha verimli bir şekilde yöneterek, C# içinde hatasız bir CSV dosyası oluşturma yaklaşımı sağlar. Ayrıca Excel'den CSV'ye dönüşümü, formül değerlendirmesini ve çok sayfalı ihracatı destekler.

IronXL, CSV dosyaları oluştururken veri karmaşıklığını nasıl yönetir?

IronXL, CSV ihraç sırasında karakter kaçışını, sınırlayıcı yönetimini, formül değerlendirmesini ve veri türü korumasını otomatik olarak yönetir, hataları minimize eder ve veri bütünlüğünü sağlar.

IronXL, veri analitiği platformlarına veri ithalatında kullanılabilir mi?

Evet, IronXL, iyi yapılandırılmış CSV dosyalarının oluşturulmasını kolaylaştırarak, veri analitiği platformlarına veri ithalatı için uyumluluk ve veri transferi kolaylığı sağlar.

IronXL ile CSV dosyası üretimini otomatikleştirmek mümkün mü?

IronXL, C#'ta otomasyonu destekler ve geliştiricilerin daha büyük .NET uygulamalarının bir parçası olarak programatik olarak CSV dosyaları oluşturmasına olanak tanır, verimliliği ve üretkenliği artırır.

C#'ta manuel CSV oluşturma yöntemlerinin yaygın tuzakları nelerdir?

Karakter kaçışı, sınırlayıcı yönetimi ve kodlama için özel kod gerektiren manuel yöntemler, veri karmaşıklığı arttıkça hata yapmaya meyilli hale gelir.

IronXL, .NET geliştirmede CSV dosyası oluşturma sürecini nasıl geliştirir?

IronXL, veri karmaşıklığını otomatik olarak ele alan sezgisel yöntemler sağlayarak CSV oluşturma sürecini basitleştirir ve .NET uygulamaları içinde doğru ve verimli CSV dosyası üretimini sağlar.

IronXL verileri veritabanlarından CSV dosyalarına ihraç edebilir mi?

Evet, IronXL, veri değişimi ve diğer sistemlerle entegrasyon sağlamak için veritabanı sorgularından doldurulmuş DataTable nesnelerini doğrudan CSV dosyalarına ihraç edebilir.

IronXL ile mevcut bir CSV dosyasını nasıl okuyabilirsiniz?

CSV dosya yolunuzla WorkBook.Load() adlı fonksiyonu kullanın. IronXL, CSV'yi standart çalışma kitabı/çalışma sayfası modeline ayrıştırır, bu da aynı API ile Excel dosyalarına erişim sağlar.

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