跳過到頁腳內容
使用 IRONXL

C# 使用 IronXL 儲存至 CSV

CSV 檔案 - 以純文字格式儲存的逗號分隔值 - 仍是應用程式、資料庫和報表系統之間進行資料交換的最普遍格式之一。 無論是匯出使用者清單、產生財務報告,或是準備資料匯入分析平台,使用 C# 程式化建立新 CSV 檔案的能力對於現代 .NET 開發而言都是不可或缺的。 開發人員通常使用簡單的 StringBuilderStreamWritervar line 方法開始 CSV 生成,但隨著資料複雜性的增加,這些手動方法很快就會變得容易出錯。

有些開發人員會求助 CSV Helper 函式庫來進行基本的讀/寫操作,但相較於 IronXL 等試算表先行的方法,這些工具仍需要手動對應和行層級處理。 本指南示範如何將資料寫入 CSV 檔案、將現有的 Excel 工作簿轉換為 CSV 格式,以及使用 IronXL.Excel 將物件匯出為逗號分隔值。 此功能強大的 .NET 函式庫可簡化試算表的操作,無須安裝 Microsoft Excel。 IronXL 可在 Windows、macOS、Linux 以及 Docker 和 Azure 等容器化環境中無縫運作,是雲原生應用程式和微服務架構的理想選擇。

逗號分隔值簡介

逗號分隔值 (CSV) 檔案是最廣泛使用的格式之一,可用於儲存表格資料並在不同應用程式之間交換。 以最簡單的形式來說,CSV 檔案是一種純文字檔案,每一行都包含一系列以逗號分隔的值。 這種直接的結構使得 CSV 資料很容易在各種軟體系統中產生、讀取和處理。 CSV 格式既輕量又人性化,因此是匯出報告、在資料庫之間傳輸資料,以及與分析工具整合的熱門選擇。

瞭解 CSV 格式

CSV 格式的設計是為了簡化:CSV 檔案中的每一行代表單一記錄,而該行中的每個值則以逗號分隔。 檔案的第一行通常作為標頭,列出每一列的名稱。 接下來的每一行都包含實際資料,每個值對應標頭中的一列。 此結構可讓 CSV 檔案以一種既易於閱讀又易於解析的格式來表示複雜的資料表。

如何在我的專案中安裝 IronXL?

透過微軟的 .NET 套件管理器 NuGet 套件,將 IronXL 加入新專案只需要幾秒鐘的時間。 開啟 Visual Studio,然後存取 NuGet Package Manager Console 並執行下列指令:

Install-Package IronXL.Excel

C# Save to CSV Using IronXL: Image 1 - Installation

或者,在"解決方案總管"中的專案上按滑鼠右鍵,選擇"管理 NuGet 套件",在"瀏覽"標籤中搜尋"IronXL",然後按一下"安裝"。 IronXL 支援 .NET Framework 4.6.2+、.NET Core、.NET 5/6/7/8,可在任何平台上執行,無外部依賴性或 COM 互操作要求。

安裝完成後,請使用 using 語句將 IronXL 命名空間新增至您的程式碼檔案:

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

此單一命名空間可存取建立試算表和 CSV 匯出作業所需的所有類別。 與依賴 StreamWriter 類或 StringBuilder 來手動編寫 CSV 檔案的方法不同,IronXL 會自動處理正確 CSV 格式化的所有複雜性。

如何從零開始建立新的 CSV 檔案?

以程式化方式建立新的 CSV 檔案包含三個簡單直接的步驟:建立工作簿、將資料填入工作簿,以及將其儲存為 CSV 格式。 IronXL.Excel 直觀的 API 反映了大家熟悉的 Excel 物件模型,讓開發人員可以輕鬆寫出在控制台應用程式或任何 .NET 專案類型中使用試算表概念的程式碼。

考慮一個您需要將員工物件清單匯出至 CSV 的情境。以下是一個完整的範例,展示如何寫入 CSV 資料:

using IronXL;
class Program
{
 public static void Main(string[] args)
 {
  // 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 - output goes to the specified path
  workBook.SaveAsCsv("employees.csv", ",");
 }
}
using IronXL;
class Program
{
 public static void Main(string[] args)
 {
  // 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 - output goes to the specified path
  workBook.SaveAsCsv("employees.csv", ",");
 }
}
Imports IronXL

Class Program
    Public Shared Sub Main(ByVal args As String())
        ' 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 - output goes to the specified path
        workBook.SaveAsCsv("employees.csv", ",")
    End Sub
End Class
$vbLabelText   $csharpLabel

WorkBook.Create()方法完全在記憶體中初始化新的試算表,在最後的儲存操作之前不需要臨時檔案或磁碟 I/O。 CreateWorkSheet()方法會在工作簿中加入一個命名的工作表 - 這個名稱在稍後匯出多工作表的工作簿至 CSV 時會變得相關。

輸出

C# Save to CSV Using IronXL: Image 2 - CSV Output

單元格引用(如 sheet["A1"] )可直接存取可指定值的特定單元格。 IronXL 接受各種資料類型,包括字串、整數、小數、日期和布林值,並自動處理每種類型的適當格式。 對於更複雜的資料輸入情境,請探索使用 Excel 範圍和大量操作。

SaveAsCsv() 方法將工作表 CSV 內容匯出至檔案。第一個參數指定輸出檔案名稱和路徑,第二個參數定義分隔符。 IronXL 會自動處理適當的格式,包括轉換可能會破壞 CSV 解析的特殊字符,並在整個匯出過程中維持資料完整性。

如何將物件清單匯出至 CSV?

在處理強類型物件時,您可以使用 foreach 循環來遍歷一個新的清單,並將每個項目寫入工作表。 以下是一個範例,使用具有公共字串屬性的 Student 類別:

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; }
}
// In your program class or method
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; }
}
// In your program class or method
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

' In your program class or method
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

此模式示範如何透過迭代每一項目並將其屬性對應到特定欄位,將清單物件匯出為 CSV 資料。 foreach 環路會處理集合中的每個學生,並透過字串插值動態建構單元格引用。

如何將現有的 Excel 檔案轉換為 CSV?

將 Excel 試算表轉換為 CSV 格式,是與傳統系統整合、為資料庫匯入準備資料,或從人工製作的報表產生機器可讀輸出時的常見需求。 IronXL 以最少的程式碼處理此轉換,同時保留資料的正確性。 檔案存在於磁碟上,可直接載入。

using IronXL;

// Load an existing Excel file from the specified location
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 from the specified location
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 from the specified location
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() 方法可開啟各種格式的 Excel 檔案,包括 XLSX、XLS、XLSM,甚至是現有的 CSV 或 TSV 檔案。 這種靈活性意味著開發人員可以建立標準化的匯出管道,不論輸入檔案的原始格式為何,都能接受。 系統內部處理檔案作業。

輸入

C# Save to CSV Using IronXL: Image 3 - Sample Excel Input

輸出

C# Save to CSV Using IronXL: Image 4 - Excel to CSV Output

在轉換過程中,IronXL 的突出功能之一是自動公式評估。 儲存為 CSV 時,IronXL 會計算試算表中存在的任何公式,並匯出結果值而非公式文字。 例如,包含 =SUM(A1:A10) 的儲存格將會匯出為計算出的總數,以確保 CSV 檔案包含下游系統可立即使用的可行資料。

多工作表匯出如何運作?

在處理包含多個工作表的 Excel 工作簿時,IronXL.Excel 會自動為每個工作表建立獨立的 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
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
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
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

命名慣例會將每個工作表名稱附加到基本檔案名稱,讓您在處理或歸檔時,能簡單辨識每個匯出檔案的來源。 對於只需要特定工作表的目標匯出,請使用 GetWorkSheet() 擷取所需的工作表,然後在該工作表物件上直接呼叫 SaveAsCsv()

在 IronXL 文件中瞭解更多關於 Excel 格式間轉換的資訊。

如何將 DataTable 匯出為 CSV?

企業應用程式經常使用從資料庫查詢、API 回應或記憶體資料處理中填充的 DataTable 物件。 IronXL for .NET 在這些 .NET 資料結構與檔案匯出之間架起橋樑,提供從應用程式記憶體到可分享 CSV 檔案的可靠路徑。 與使用 var writer 方法或使用新的 StreamWriter 來手動撰寫 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 a loop
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 and save to the specified path
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 a loop
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 and save to the specified path
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 a loop
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 and save to the specified path
workBook.SaveAsCsv("product_inventory.csv", ",")
$vbLabelText   $csharpLabel

此模式會迭代 DataTable 結構,先傳輸列頭,然後有系統地填入每一行資料。 DefaultWorkSheet 屬性可快速存取新建立的工作簿中的第一個工作表,在簡單的情況下不需要明確地建立工作表。 預設情況下,該方法會依序處理所有行。

輸出

C# Save to CSV Using IronXL: Image 5 - DataTable to CSV Output

IronXL 在傳輸過程中會保留資料類型,確保數值維持其精確度,日期保留其格式。 此方法適用於任何大小的 資料表,不論是包含來自簡單查詢的數十筆記錄,或是來自全面資料匯出的數千筆記錄。 若要在匯出前進行其他試算表操作,請探索儲存格格式化選項和 範圍操作

如何處理 CSV 檔案中的自訂分隔符?

不同的系統和地區標準需要不同的分隔符號。 雖然逗號在許多國家都是標準的分隔符號,但在歐洲地區,逗號通常是數值中的小數分隔符號,因此歐洲地區更偏好使用分號。 當源資料中的欄位值包含逗號時,Tab-separated 檔案 (TSV) 會很受歡迎。 IronXL 的 SaveAsCsv() 方法可以滿足所有這些情況,而不需要額外的程式碼來處理每一行輸出。

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() 的第二個參數接受任何字串作為分隔符,為整合不同的系統和區域需求提供了完全的彈性。 在為國際發行產生檔案時,請考慮目標系統的區域期望 - 歐洲的金融系統通常期望使用分號分隔,而北美的系統通常預設為逗號。

最佳實務

在 C# 中處理 CSV 檔案時,遵循最佳實務可確保您的資料保持精確、可讀,並與其他系統相容。 以下是一些基本準則:

  • 一致的分隔符:在整個 CSV 檔案中,務必使用一致的分隔符,例如逗號或分號。這有助於在匯入或匯出資料時防止解析錯誤。
  • 引用特殊值:如果您的資料值包含逗號、引號或其他特殊字符,請用雙引號括住它們,以維護 CSV 資料的完整性。
  • 日期和時間格式:在 CSV 檔案中使用一致的日期和時間格式,以避免混淆,並確保與其他應用程式相容。
  • 避免在值中使用換行符:避免在值中包含換行符號,因為這些符號會擾亂行結構並導致格式問題。
  • 利用程式庫:利用類似 CsvHelper 的函式庫來簡化 CSV 檔案的讀寫。 CsvHelper 可以處理 CSV 格式的許多複雜問題,例如轉義、引號和自訂分隔符。
  • 檔案處理:在寫入之前,務必檢查檔案是否存在,並優雅地處理異常。 使用 using 語句以確保檔案串流在使用後被適當地關閉與處理。

例如,您可以在 Visual Studio 中啟動一個新專案,安裝 CsvHelper NuGet 套件,並使用 CsvWriter 類將資料寫入 CSV 檔案。定義一個具有 Firstname 和 Lastname 等屬性的 Student 類別,然後使用 CsvWriter 將 Student 物件的清單匯出至 CSV 檔案。 此方法不僅能簡化您的工作流程,還能降低出錯的風險,確保您的 CSV 檔案結構良好,可在任何應用程式中使用。

結論

有了 IronXL,在 C# 中建立和匯出 CSV 檔案變得非常有效率。 從產生填入結構化資料的新檔案,到轉換複雜的多表 Excel 工作簿,該函式庫提供了簡潔、直覺式的 API,可處理正確 CSV 格式化、特殊字符轉換和公式評估等底層複雜問題。 與需要使用 var streamvar csv 變數或附加文字邏輯撰寫自訂程式碼的手動方式不同,IronXL 簡化了整個流程。

本文章涵蓋的主要方法和技巧包括

  • WorkBook.Create() 用於在記憶體中初始化新的試算表
  • WorkBook.Load() 用於開啟任何支援格式的現有 Excel 檔案
  • SaveAsCsv()用於以可自訂的分隔符匯出資料
  • 使用 GetWorkSheet() 匯出個別工作表,以進行目標轉換
  • 資料庫至 CSV 工作流程的 DataTable 迭代模式
  • 使用 foreach 循環匯出物件清單

開始免費試用以探索完整的試算表功能,或購買授權進行生產部署。 如需其他涵蓋先進情境的範例,例如儲存格樣式、公式建立和圖表生成,請探索全面的 IronXL 文件code examples 函式庫。

常見問題解答

什麼是 CSV 檔案,為什麼它很重要?

CSV 檔案或逗號分隔值檔案是一種純文字格式,用於應用程式、資料庫和報表系統之間的資料交換。其通用格式使其成為匯出清單、產生報表和準備分析資料的關鍵。

如何使用 C# 建立 CSV 檔案?

您可以利用 IronXL 強大的資料處理功能,在 C# 中建立 CSV 檔案,相較於「StringBuilder」或「StreamWriter」等手動方法,IronXL 簡化了流程。

使用 IronXL 製作 CSV 有哪些優點?

IronXL 提供簡化、無錯的 C# CSV 檔案建立方法,比傳統的手動方法更有效率地處理複雜的資料結構。

IronXL 在建立 CSV 檔案時,如何處理資料的複雜性?

IronXL 旨在輕鬆管理複雜的資料結構,將錯誤降至最低,並確保在 C# 中建立 CSV 檔案時的資料完整性。

IronXL 可以用於將資料匯入分析平台嗎?

是的,IronXL 可透過協助建立結構良好的 CSV 檔案來準備匯入分析平台的資料,確保資料傳輸的相容性和便利性。

是否可以使用 IronXL 自動生成 CSV 檔案?

IronXL 支援 C# 自動化,讓開發人員可以程式化地產生 CSV 檔案,作為大型 .NET 應用程式的一部分,提升效率和生產力。

在 C# 中手動建立 CSV 的方法有哪些常見的錯誤?

手動方法如 `StringBuilder` 或 `StreamWriter` 會隨著資料複雜度的增加而容易出錯,導致資料準確性和格式一致性的問題。

IronXL 如何改善 .NET 開發中的 CSV 檔案建立流程?

IronXL 透過提供處理資料複雜性的直覺式方法和函式,簡化了 CSV 的建立過程,確保在 .NET 應用程式中準確且有效率地產生 CSV 檔案。

IronXL 可以將資料庫中的資料匯出成 CSV 檔案嗎?

是的,IronXL 可用於將資料庫中的資料匯出至 CSV 檔案,方便與其他系統進行無縫資料交換與整合。

是什麼讓 IronXL 成為現代 .NET 開發人員的首選?

IronXL 受到現代 .NET 開發人員的青睞,因為它能夠毫不費力地處理複雜的資料操作、減少錯誤並簡化 C# 中的 CSV 檔案建立程序。

Curtis Chau
技術撰稿人

Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。