跳至頁尾內容
USING IRONXL

如何使用 IronXL 在 C# 中將資料保存為 CSV

在現代C#應用程式中,管理CSV文件是基本需求,從生成商業報告到匯出資料庫記錄。 雖然.NET提供基本的文件寫入功能,但要有效處理CSV文件,尤其是涉及特殊字元、多種資料型別和大型資料集的情況,則需要更強大的解決方案。 IronXL 通過提供全面的API處理CSV操作,如C#保存到CSV,並具有完整的Excel相容性來簡化整個過程。

本教程展示了如何利用IronXL的強大功能在您的C#應用程式中建立、保存和管理CSV文件。 您將學習如何處理多種資料來源的實用技術,從簡單的集合到複雜的DataTable,同時保持乾淨且可維護的程式碼。

如何使用IronXL在C#中將資料保存為CSV:圖片1 - IronXL

開始使用 IronXL

在進入CSV操作之前,您需要在項目中安裝IronXL。 此程式庫支持.NET Framework 4.6.2+和.NET Core 2+,使其與舊的和現代的應用程式相容。 IronXL還提供了優良的跨平台支持,可以無縫運行於Windows、Linux和macOS環境。

如何使用IronXL在C#中將資料保存為CSV:圖片2 - 跨平台

打開Visual Studio,轉到Package Manager Console並鍵入以下命令:

Install-Package IronXL.Excel

如何使用IronXL在C#中將資料保存為CSV:圖片3 - 安裝

或通過.NET CLI:

dotnet add package IronXL.Excel

安裝後,將IronXL命名空間新增到您的C#文件中,以存取所有CSV管理功能,例如寫入資料:

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

該簡單設置可讓您立即存取強大的電子表格操作功能。 與需要Excel Interop或複雜的CSV解析邏輯的傳統方法不同,IronXL提供了一個直觀的API,處理幕後的復雜性。 此程式庫獨立運作,無需安裝Microsoft Office,非常適合伺服器部署和容器化應用程式。

如果在安裝或初始化程式庫時發生錯誤,請確保您的項目目標是支援的.NET版本,並且所有依賴項都已正確還原。

如何保存並寫入資料到新的CSV文件?

從頭建立或寫入CSV文件與IronXL遵循一個直覺模式。 您從建立一本工作簿開始,將所有資料新增到單元格中,然後以CSV格式保存。 此方法比基本的字串連接方法提供更多控制。

在深入了解主要的CSV建立邏輯之前,這是一個使用公共類學生結構的簡單模型定義。 此模型代表結構化資料,我們稍後可以匯出到CSV。

// Define a Student class to model your data
public class Student
{
    public string? Name { get; set; } // public string firstname, public string lastname
    public int Age { get; set; }
    public string? Grade { get; set; }
}
// Define a Student class to model your data
public class Student
{
    public string? Name { get; set; } // public string firstname, public string lastname
    public int Age { get; set; }
    public string? Grade { get; set; }
}
Option Strict On



Public Class Student
    Public Property Name As String
    Public Property Age As Integer
    Public Property Grade As String
End Class
$vbLabelText   $csharpLabel

您可以填充一個學生物件列表,然後使用IronXL將它們高效地導出到CSV文件。此範例顯示如何將類性質映射到工作表單元格:

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

說明:

  1. 公共類學生定義了您的資料模型的架構。
  2. 使用樣本資料建立了一個學生物件列表。
  3. 使用IronXL的WorkBook和WorkSheet API在記憶體中建立一個結構化的電子表格。
  4. 手動新增標頭以確保CSV輸出具有可讀性。
  5. 學生資料逐行寫入工作表。
  6. 最後,使用SaveAsCsv()將資料保存為CSV文件。

輸出

如何使用IronXL在C#中將資料保存為CSV:圖4 - 控制台輸出

如何使用IronXL在C#中將資料保存為CSV:圖5 - Excel輸出

此模式具有可擴展性; 如此一來,您可以輕鬆地將其調整為更大的資料集,或將其整合到從資料庫或API檢索學生資料的應用程式中。

例如,如果在寫入文件時發生錯誤(例如,文件被鎖定或路徑無效),您可以再處更應優雅地處理:

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

這確保即使在出現文件I/O問題時,您的應用程式仍然堅固且具有資訊性。

以下是建立基本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");
}
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

此程式碼建立一個具有標頭和資料的結構化工作簿,然後將其導出為CSV格式。 WorkBook.Create()方法在記憶體中初始化一個新的電子表格。 每個單元格可以承載不同的資料型別,例如字串、整數、小數,甚至是公式。 當您呼叫SaveAsCsv()時,IronXL會自動處理轉換,正確轉義任何特殊字元並保持資料完整性。

此方法的美妙之處在於其靈活性。 您可以在導出之前作為電子表格操作資料,應用公式、格式化或驗證規則。 IronXL在導出過程中自動計算公式,確保您的CSV中包含計算值而不是公式文字。

輸出

如何使用IronXL在C#中將資料保存為CSV:圖6 - CSV輸出

對於自定義分隔符要求,IronXL允許您指定標準逗號的替代方案:

// Save with semicolon delimiter for European locale compatibility
workbook.SaveAsCsv("sales_report.csv", ";");
// Save with tab delimiter
workbook.SaveAsCsv("sales_report.tsv", "\t");
// Save with semicolon delimiter for European locale compatibility
workbook.SaveAsCsv("sales_report.csv", ";");
// Save with tab delimiter
workbook.SaveAsCsv("sales_report.tsv", "\t");
$vbLabelText   $csharpLabel

此靈活性確保與各種地區設置和應用需求的相容性。 此程式庫自動處理編碼問題,確保跨不同系統和地區的正確字元表示。

如何使用IronXL在C#中將資料保存為CSV:圖7 - 功能

如何匯出DataTable至CSV?

在.NET應用程式中,DataTables廣泛用於儲存來自資料庫或業務邏輯的表格資料。 IronXL提供了無縫的DataTable到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");
// 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

本範例展示了一個真實世界場景,其中來自資料庫的訂單資料需要導出以進行報告或整合目的。 程式碼迭代DataTable結構,保留列標題和行資料。 IronXL適當地處理不同資料型別的轉換,確保日期、小數和字串在生成的CSV文件中格式正確。

輸出

如何使用IronXL在C#中將資料保存為CSV:圖8 - DataTable至CSV輸出

對於涉及多個相關表或進階資料轉換的更複雜情形,您可以利用IronXL的單元格引用和公式功能:

// 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

此方法提供了比傳統的DataTable匯出方法更多的控制。 您可以在最終匯出之前新增計算欄位、應用條件格式邏輯或重新組織列。 IronXL文件為進階DataTable操控情境提供了全面的範例。

如何將Excel文件轉換為CSV?

IronXL最強大的特點之一是它能夠與現有的Excel文件無縫交流,將它們轉換為CSV格式,同時保留資料完整性。 這在與生成Excel報告但需要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
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文件時,IronXL保留所有單元格值,包括那些由公式計算的值。 程式庫在轉換過程中評估Excel公式,確保您的CSV僅包含實際計算值。 這消除了在CSV匯出中出現公式文字的常見問題。

輸入

如何使用IronXL在C#中將資料保存為CSV:圖9 - 樣本輸入

輸出

如何使用IronXL在C#中將資料保存為CSV:圖10 - Excel至CSV輸出

對於包含多個工作表的工作簿,IronXL智能地處理每個工作表:

// 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

此程式碼迭代Excel文件中的所有工作表,為每個工作表建立單獨的CSV文件。 工作表名稱在文件命名中得以保留,使其容易識別每個CSV文件的來源。IronXL支援多種Excel格式,包括XLSX、XLS、XLSM和XLTX,提供與不同Excel版本和用例的廣泛相容性。 在文件中了解有關格式轉換的更多資訊。

進階CSV管理技術

除了基本的CSV建立之外,IronXL還提供了精緻的功能來處理生產環境中經常出現的複雜場景。 這些功能使它與簡單的文件寫入方法區分開來。

在處理特殊字元時, IronXL自動處理逃逸和編碼:

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正確地逃逸引號,處理多行內容並保留Unicode字元。 此自動處理防止了手動字串操作方法中常見的CSV解析錯誤。

輸出

如何使用IronXL在C#中將資料保存為CSV:圖11 - 特殊字元輸出

對於批量處理場景,您可以高效地處理多個文件:

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

在處理大量資料集時,記憶體效率變得至關重要。 IronXL在內部優化記憶體使用,但您可以通過分塊處理資料和適當釋放資源進一步提升性能:

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

輸出

如何使用IronXL在C#中將資料保存為CSV:圖12 - 大資料集輸出

結論

IronXL將C#中的CSV文件管理從繁瑣的任務轉變為簡單的流程。 通過為CSV和Excel操作提供統一的API,它消除了對多個程式庫或複雜解析邏輯的需求。 該程式庫自動處理特殊字元、資料型別和編碼問題,確保資料在不同系統和區域中的可靠導出。

無論您是在構建報告系統、資料整合管道還是簡單的導出功能,IronXL都提供了高效CSV管理所需的工具。 其與現有Excel文件和DataTable結構的相容性使其易於整合到現有應用程式中,無需進行大規模重構。 一旦生成CSV文件,您可以直接在Excel中打開它們或使用任何文字編輯器檢查其原始格式,以快速驗證或排除故障。

準備好簡化您的CSV操作了嗎? 從免費試用開始,包括專業支援和更新。

如何使用IronXL在C#中將資料保存為CSV:圖13 - 授權

常見問題

使用IronXL在C#中將資料儲存為CSV的優勢是什麼?

IronXL提供了一個全面的API,簡化了CSV操作,包括將資料儲存為CSV,同時提供完整的Excel相容性,使得管理特殊字元、多種資料型別和大型資料集更加容易。

IronXL如何在CSV檔案中處理特殊字元?

IronXL通過提供強大的解析和寫入功能來高效管理CSV檔案中的特殊字元,確保在檔案操作過程中維護資料完整性。

IronXL能否在將資料儲存為CSV時管理大型資料集?

是的,IronXL設計用來高效處理大型資料集,提供一種性能優化的方法來儲存資料到CSV檔案而不會影響速度或可靠性。

IronXL是否支持CSV操作的多種資料型別?

IronXL支持多種資料型別,允許開發者無縫地將複雜的資料集匯出為CSV格式,而不會遇到資料型別相容性問題。

IronXL在處理CSV檔案時是否可以與Excel相容?

IronXL提供完整的Excel相容性,這意味著它可以處理CSV檔案和Excel操作,使其成為開發者處理電子表格資料的多功能工具。

IronXL是C#中CSV檔案管理的強大解決方案的原因是什麼?

IronXL針對CSV檔案管理的強大解決方案來自於其全面的API,簡化了複雜的CSV操作,並提供額外的功能,如Excel相容性和對大型資料集的支持。

IronXL如何簡化在C#中儲存為CSV的過程?

IronXL通過抽象出CSV檔案管理中的複雜性來簡化過程,為開發者提供簡便的方法以高效地將資料儲存為CSV。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話