How to Use C# to Convert Datatable to CSV

This article was translated from English: Does it need improvement?
Translated
View the article in English

使用IronXL在 C# 中將 DataTable 轉換為 CSV,方法是創建一個 W或者kBook,用 DataTable 行填充它,然後調用 SaveAsCsv() 方法 - 無需複雜的循環或互操作。

快速入門:一行程式碼匯出程式碼 560 到 CSV 檔案 @@--AH2BG--@@

使用IronXL ,只需一次方法調用即可將填充的 DataTable 轉換為 CSV 檔案——無需循環、無需互通、無需複雜操作。 你只需要一個 W或者kBook 和它的 DefaultW或者kSheet,就可以使用 SaveAsCsv 在幾秒鐘內導出。

  1. 使用NuGet套件管理器安裝https://www.nuget.org/packages/IronXl.Excel

    PM > Install-Package IronXl.Excel
  2. 複製並運行這段程式碼。

    IronXl.W或者kBook.Create().DefaultW或者kSheet.SaveAsCsv("output.csv", ",");
  3. 部署到您的生產環境進行測試

    今天就在您的專案中開始使用免費試用IronXL

    arrow pointer

步驟 1

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

您必須先安裝IronXL ,才能在應用程式中使用它。 IronXL為您的專案提供多種安裝選項。 IronXL是一個函式庫,它簡化了在 C# 中處理 Excel 檔案的操作,而無需安裝 Microsoft Excel 或 Interop。

我應該使用哪種安裝方法?

請使用以下連結從官方網站下載: https://ironsoftware.com/csharp/excel/docs/

或者

在 Visual Studio 中,選擇"項目"選單

  • 點選"管理NuGet套件"
  • 搜尋IronXl.Excel 點選安裝

我應該使用哪個NuGet指令?

Install-Package IronXl.Excel

為什麼選擇NuGet套件管理器?

NuGet是.NET開發人員的首選方法,因為它能夠自動管理依賴項並保持庫的最新狀態。 IronXL軟體包包含轉換電子表格檔案類型和處理各種 Excel 格式所需的所有元件。

IronXl.Excel NuGet套件安裝窗口,顯示 Visual Studio 套件管理器中的套件詳細資料、版本資訊和安裝按鈕
圖 1 - IronXl.Excel NuGet包

操作指南

如何建立並匯出 DataTable 到 CSV?

DataTable 轉換為 CSV 的過程包括建立一個 W或者kBook,用資料填充它,並使用 IronXL 的內建CSV 寫入功能。 這種方法比手動建立 CSV 字串或使用傳統的文件流方法更有效率。

我需要匯入哪個命名空間?

首先,導入IronXL命名空間。 IronXL為導入和導出 DataSetDataTable物件提供了全面的支持,使其成為資料庫驅動應用程式的理想選擇。

using IronXL;
using IronXL;
$vbLabelText   $csharpLabel

完整的程式碼範例是什麼?

新增以下程式碼:

:path=/static-assets/excel/content-code-examples/how-to/csharp-database-to-csv-datatable.cs
using IronXL;
using System;
using System.Data;

// Create a new DataTable object
DataTable table = new DataTable();

// Add a single column named "Example_DataSet" of type string
table.Columns.Add("Example_DataSet", typeof(string));

// Add rows to the DataTable
table.Rows.Add("0");
table.Rows.Add("1");
table.Rows.Add("2");
table.Rows.Add("3");
table.Rows.Add("1");
table.Rows.Add("2");
table.Rows.Add("3");

// Create a new Excel workbook and set its author metadata
WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
wb.Metadata.Author = "OJ";

// Get the default worksheet
WorkSheet ws = wb.DefaultWorkSheet;

// Initialize rowCounter for Excel sheet rows
int rowCount = 1;

// Loop through each row in the DataTable and add the data to the Excel worksheet
foreach (DataRow row in table.Rows)
{
    // Populate worksheet cells with data from DataTable
    ws["A" + (rowCount)].Value = row[0].ToString();
    rowCount++;
}

// Save the workbook as a CSV file
wb.SaveAsCsv("Save_DataTable_CSV.csv", ";"); // Will be saved as: Save_DataTable_CSV.Sheet1.csv
$vbLabelText   $csharpLabel

程式碼是如何一步一步運行的?

上面的程式碼建立了一個名為 DataTable 的對象,建立了一個新的工作簿,並將"OJ"指定為其擁有者,然後使用 f或者each 迴圈將 DataTable 中的資料插入到 Excel 工作表中。 最後,SaveAsCsv 方法將資料表匯出為 CSV。

流程分解:

1.建立資料表:初始化一個新的 DataTable 並透過新增列來定義其架構。 這類似於定義資料庫表結構。

2.資料填入:使用 Rows.Add() 方法為 DataTable 新增一行。 每行代表一筆要匯出為 CSV 格式的記錄。

3.工作簿產生:IronXL 的 W或者kBook.Create() 方法初始化一個新的 Excel 工作簿。 如有需要,您也可以建立包含多個工作表的電子表格

4.儲存格填入:f或者each 迴圈遍歷 DataTable 行,並使用儲存格引用語法(例如,"A1"、"A2")將每個值對應到特定的工作表儲存格。

  1. CSV 匯出SaveAsCsv() 方法處理 CSV 格式的複雜性,包括對特殊字元進行正確的轉義和對分隔符號進行處理。

那麼,對於高階資料表場景呢?

對於具有多列的複雜 DataTables,請按如下方式擴展代碼:

// Create a DataTable with multiple columns
DataTable advancedTable = new DataTable();
advancedTable.Columns.Add("ID", typeof(int));
advancedTable.Columns.Add("Name", typeof(string));
advancedTable.Columns.Add("Price", typeof(decimal));

--snip--
w或者kbook.SaveAsCsv("products.csv", ",");
// Create a DataTable with multiple columns
DataTable advancedTable = new DataTable();
advancedTable.Columns.Add("ID", typeof(int));
advancedTable.Columns.Add("Name", typeof(string));
advancedTable.Columns.Add("Price", typeof(decimal));

--snip--
w或者kbook.SaveAsCsv("products.csv", ",");
$vbLabelText   $csharpLabel

輸出結果是什麼樣子的?

輸出的Excel工作表顯示如下:

Excel 工作表顯示匯出為 CSV 格式的 DataTable 值,其中 A1 到 A7 儲存格包含連續的數值
圖 2 -資料表輸出到 CSV

如何處理大型 DataTables?

當處理包含數千行的大型 DataTables 時, IronXL仍能保持優異的效能。 該庫能夠有效率地處理大型資料集。 對於生產環境,請套用您的許可證金鑰以移除浮水印並啟用全部功能。

錯誤處理方面呢?

在進行文件操作時,請務必務必實施適當的錯誤處理:

try 
{
    // Your DataTable to CSV conversion code
    W或者kBook wb = W或者kBook.Create();
    // ... rest of the code
    wb.SaveAsCsv("output.csv", ",");
    Console.WriteLine("CSV file created successfully!");
}
catch (Exception ex)
{
    Console.WriteLine($"Err或者 creating CSV: {ex.Message}");
}
try 
{
    // Your DataTable to CSV conversion code
    W或者kBook wb = W或者kBook.Create();
    // ... rest of the code
    wb.SaveAsCsv("output.csv", ",");
    Console.WriteLine("CSV file created successfully!");
}
catch (Exception ex)
{
    Console.WriteLine($"Err或者 creating CSV: {ex.Message}");
}
$vbLabelText   $csharpLabel

圖書館快速訪問

### IronXL API 參考文檔

使用便利的IronXL API 參考文檔,了解更多內容並分享如何在 Excel 電子表格中合併、取消合併和處理儲存格。

IronXL API 參考文檔
Documentation related to 圖書館快速訪問

常見問題解答

如何在 C# 中將 DataTable 轉換為 CSV,而不需要撰寫複雜的循環?

IronXL 提供簡單的單行解決方案,可將 DataTable 轉換為 CSV。在建立 WorkBook 並將 DataTable 資料填入其中後,您可以使用 SaveAsCsv() 方法直接匯出為 CSV 格式,而無需撰寫迴圈或使用 Interop。

DataTable 至 CSV 轉換函式庫有哪些安裝選項?

IronXL 可透過 Visual Studio 中的 NuGet Package Manager 搜尋「IronXl.Excel」或使用 NuGet 命令列安裝。這是首選的方法,因為它會自動管理相依性並保持庫的最新狀態。

我需要安裝 Microsoft Excel 才能將 DataTable 轉換為 CSV 嗎?

不,IronXL 可獨立運作,無須安裝 Microsoft Excel 或 Interop。它是一個獨立的函式庫,可簡化在 C# 應用程式中處理 Excel 檔案和 CSV 匯出的工作。

將 DataTable 轉換為 CSV 需要匯入哪些命名空間?

您需要在 C# 檔案頂端加入「using IronXL;」來匯入 IronXL 命名空間。這可讓您存取匯入和匯出 DataSet 與 DataTable 物件的全面支援。

匯出至 CSV 時,我可以指定自訂的分隔符嗎?

是的,IronXL 的 SaveAsCsv() 方法允許您指定自訂的分隔符。在範例程式碼中,逗號 (",")被用作分隔符,但您可以將其變更為任何符合您需求的字元。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 12
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/ready_to_started_202509.php
Line: 19
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 489
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

準備好開始了嗎?
Nuget 下載 1,890,100 | 版本: 2026.3 剛剛發布

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 17
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Undefined index: IronXl.Excel

Filename: helpers/counter_helper.php

Line Number: 85

Backtrace:

File: /var/www/ironpdf.com/application/helpers/counter_helper.php
Line: 85
Function: _error_handler

File: /var/www/ironpdf.com/application/views/main/sections/still_scrolling_202512.php
Line: 24
Function: getTotalDonwloadNumber

File: /var/www/ironpdf.com/application/views/products/sections/three_column_docs_page_structure.php
Line: 71
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/views/products/how-to/index.php
Line: 2
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 88
Function: view

File: /var/www/ironpdf.com/application/libraries/Render.php
Line: 552
Function: view

File: /var/www/ironpdf.com/application/controllers/Products/Howto.php
Line: 31
Function: render_products_view

File: /var/www/ironpdf.com/index.php
Line: 292
Function: require_once

Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronXl.Excel
執行範例 觀看您的資料變成試算表。