How to Use C# to Convert Datatable to CSV
using IronXL 在 C# 中將 DataTable 轉換成 CSV,建立 WorkBook,然後填充 DataTable 行,並呼叫 SaveAsCsv() 方法﹣無需複雜的迴圈或 Interop。
快速入門:一行將 DataTable 導出為 CSV
using IronXL 通過一次方法呼叫將填充的 DataTable 轉換成 CSV 文件﹣無需迴圈,無需 Interop,無複雜性。 您只需一個 WorkBook 和其 DefaultWorkSheet 即可使用 SaveAsCsv 在幾秒鐘內導出。
最小化工作流程(5步)
- 下載並安裝將 DataTable 轉換為 CSV 的 C# 程式庫
- 使用
DataTable類儲存新資料 - 建立新的或匯入現有的試算表
- 遍歷表格行並相應地填充工作表中的單元格
- 使用
SaveAsCsvC# 函式導出為 CSV 文件
步驟 1
我該如何在專案中安裝 IronXL?
在使用 IronXL 於您的應用程式之前,您必須先安裝它。 IronXL 提供多種安裝方式供您的專案選擇。 IronXL 是一個程式庫,簡化了在 C# 中處理 Excel 文件的操作,無需安裝 Microsoft Excel 或 Interop。
我應該使用哪種安裝方法?
從官方網站下載,使用以下連結:https://ironsoftware.com/csharp/excel/docs/
or
- 在 Visual Studio 中,選擇專案選單
- 點擊管理NuGet套件
- 搜尋
IronXL.Excel - 點選安裝
我該使用什麼 NuGet 命令?
Install-Package IronXL.Excel
為什麼選擇 NuGet 套件管理員?
NuGet 是 .NET 開發者的首選方法,因為它會自動管理依賴項並保持程式庫的最新狀態。 IronXL 包含所有必要的組件,用於轉換試算表文件型別並處理各種 Excel 格式。
教程
我該如何建立並導出 DataTable 為 CSV?
將 DataTable 轉換為 CSV 的過程涉及建立 WorkBook ,填入資料,並使用 IronXL 的內建CSV 編寫功能。 這個方法比手動構建 CSV 字串或使用傳統的文件流方法更有效率。
我需要匯入什麼命名空間?
首先,匯入 IronXL 命名空間。 IronXL 為匯入和匯出 DataSet 和 DataTable 物件提供了全面的支援,這使其成為資料庫驅動應用的理想選擇。
:path=/static-assets/excel/content-code-examples/how-to/csharp-datatable-to-csv-3.cs
using IronXL;
Imports IronXL
完整的程式碼範例是什麼?
加入以下程式碼:
: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
Imports IronXL
Imports System
Imports System.Data
' Create a new DataTable object
Dim table As New DataTable()
' Add a single column named "Example_DataSet" of type string
table.Columns.Add("Example_DataSet", GetType(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
Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
wb.Metadata.Author = "OJ"
' Get the default worksheet
Dim ws As WorkSheet = wb.DefaultWorkSheet
' Initialize rowCounter for Excel sheet rows
Dim rowCount As Integer = 1
' Loop through each row in the DataTable and add the data to the Excel worksheet
For Each row As DataRow In table.Rows
' Populate worksheet cells with data from DataTable
ws("A" & rowCount).Value = row(0).ToString()
rowCount += 1
Next
' Save the workbook as a CSV file
wb.SaveAsCsv("Save_DataTable_CSV.csv", ";") ' Will be saved as: Save_DataTable_CSV.Sheet1.csv
程式碼如何逐步運作?
上述程式碼建立一個 DataTable ,建立一個新工作簿並指定 'OJ' 作為其所有者,然後使用 foreach 迴圈從 DataTable 插入資料至 Excel 工作表。 最後,SaveAsCsv 方法導出 datatable 為 CSV。
流程分解:
-
DataTable 建立:初始化新
DataTable並通過新增列定義其架構。 這類似於定義資料庫表結構。 -
資料填充:使用
Rows.Add()方法向DataTable新增行。 每一行代表 CSV 導出的紀錄。 -
工作簿生成:IronXL 的
WorkBook.Create()方法初始化新 Excel 工作簿。 您也可以建立多個工作表的試算表如果需要。 -
單元格填充:foreach 迴圈遍歷
DataTable行,並使用單元格引用語法(例如 "A1"、"A2")將每個值對應到特定的工作表單元格。 - CSV 導出:
SaveAsCsv()方法處理 CSV 格式的複雜性,包括正確轉義特殊字元和分隔符處理。
關於高級 DataTable 場景呢?
對於具有多個列的複雜 DataTable,可以如此擴展程式碼:
// 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--
workbook.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--
workbook.SaveAsCsv("products.csv", ",");
' Create a DataTable with multiple columns
Dim advancedTable As New DataTable()
advancedTable.Columns.Add("ID", GetType(Integer))
advancedTable.Columns.Add("Name", GetType(String))
advancedTable.Columns.Add("Price", GetType(Decimal))
' --snip--
workbook.SaveAsCsv("products.csv", ",")
輸出是什麼樣的?
輸出的 Excel 工作表顯示如下:
我該如何處理大型 DataTable?
當處理含有數千行的大型 DataTable 時,IronXL 仍保持卓越的性能。 該程式庫有效地處理大量資料集。 在生產環境中,應用您的授權金鑰以去除浮水印並啟用完整功能。
關於錯誤處理呢?
在處理文件操作時,始終實施正確的錯誤處理:
:path=/static-assets/excel/content-code-examples/how-to/csharp-datatable-to-csv-6.cs
try
{
// Your DataTable to CSV conversion code
WorkBook wb = WorkBook.Create();
// ... rest of the code
wb.SaveAsCsv("output.csv", ",");
Console.WriteLine("CSV file created successfully!");
}
catch (Exception ex)
{
Console.WriteLine($"Error creating CSV: {ex.Message}");
}
Imports System
Try
' Your DataTable to CSV conversion code
Dim wb As WorkBook = WorkBook.Create()
' ... rest of the code
wb.SaveAsCsv("output.csv", ",")
Console.WriteLine("CSV file created successfully!")
Catch ex As Exception
Console.WriteLine($"Error creating CSV: {ex.Message}")
End Try
程式庫快捷存取
常見問題
如何在不寫複雜迴圈的情況下將 DataTable 轉換為 CSV?
IronXL 提供簡單的一行解決方案來將 DataTable 轉換為 CSV。在建立 WorkBook 並填入 DataTable 資料後,您可以使用 SaveAsCsv() 方法直接匯出為 CSV 格式,無需編寫迴圈或使用 Interop。
DataTable 到 CSV 轉換程式庫的安裝選項有哪些?
IronXL 可以通過 Visual Studio 中的 NuGet 套件管理器安裝,搜尋 '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() 方法允許您指定自定義分隔符。在範例程式碼中使用逗號 (",") 作為分隔符,但您可以根據需求將其更改為任何字元。

