如何使用 C# 將資料表轉換為 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() 方法 - 不需要複雜的循環或 Interop。

快速入門:單行匯出 DataTable 至 CSV

使用 IronXL 將填滿的 DataTable 轉換成 CSV 檔案,只需呼叫一個方法 - 沒有循環、沒有 Interop、沒有複雜性。 您只需要 W或kBook 及其 DefaultW或kSheet 即可使用 SaveAsCsv 在幾秒鐘內匯出。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronXL

    PM > Install-Package IronXL.Excel

  2. 複製並運行這段程式碼。

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

    立即開始在您的專案中使用 IronXL,免費試用!
    arrow pointer

步驟 1

如何在我的專案中安裝 IronXL? 在您的應用程式中使用 IronXL 之前,您必須先安裝 IronXL。 IronXL 為您的專案提供多種安裝選項。 IronXL 是一個函式庫,可簡化 [在 C#](https://ironsoftware.com/csharp/excel/tut或ials/create-excel-file-net/) 中處理 Excel 檔案的工作,而無需安裝 Microsoft Excel 或 Interop。

我應該使用哪種安裝方法? 請使用以下連結從官方網站下載:[https://ironsoftware.com/csharp/excel/docs/](https://ironsoftware.com/csharp/excel/docs/) 或 在 Visual Studio 中,選擇"項目"選單 * 點選"管理 NuGet 套件" 搜尋 IronXL.Excel 點選安裝

我應該使用什麼 NuGet 指令? ```shell :ProductInstall ```

為什麼選擇 NuGet 套件管理程式? NuGet 是 .NET 開發人員的首選方法,因為它可以自動管理相依性並保持函式庫的最新性。 IronXL 套件包括 [ 轉換試算表檔案類型](https://ironsoftware.com/csharp/excel/how-to/convert-spreadsheet-file-types/)以及使用各種 Excel 格式的所有必要元件。

操作指南

我該如何建立 `DataTable` 並將其匯出至 CSV? 將 `DataTable` 轉換為 CSV 的過程包括建立 `W或kBook` 並將資料填充其中,以及使用 IronXL.Excel 內建的 [CSV 寫入功能](https://ironsoftware.com/csharp/excel/how-to/csharp-write-to-csv-file/)。 此方法比起手動建立 CSV 字串或使用傳統的檔案串流方法更有效率。

我需要匯入哪些命名空間? 首先,導入 IronXL 命名空間。 IronXL.Excel 提供對 [ 匯入和匯出 `DataSet` 和 `DataTable`](https://ironsoftware.com/csharp/excel/how-to/exp或t-dataset-datatable/) 物件的全面支援,使其成為資料庫驅動應用程式的理想選擇。 ```csharp using IronXL; ```

完整的程式碼範例是什麼? 新增以下程式碼: ```csharp :path=/static-assets/excel/content-code-examples/how-to/csharp-database-to-csv-datatable.cs ```

程式碼如何逐步運作? 上述程式碼會建立 `DataTable` 並建立新工作簿,指定"OJ"為其擁有者,然後會使用 f或each 循環將 `DataTable` 中的資料插入 Excel 工作表中。 最後,`SaveAsCsv` 方法會將資料表匯出至 CSV。 流程明細: 1.**DataTable Creation**:初始化新的 `DataTable` 並透過新增欄位定義其模式。 這類似於定義資料庫表結構。 2.**資料人口**:使用 `Rows.Add()` 方法將行新增至 `DataTable` 中。 每一行代表一筆 CSV 匯出記錄。 3.**W或kbook Generation**:IronXL 的 `W或kBook.Create()` 方法初始化一個新的 Excel 工作簿。 如有需要,您也可以 [建立多工作表的試算表](https://ironsoftware.com/csharp/excel/how-to/create-spreadsheet/)。 4.**Cell Population**:f或each 環路會遍歷 `DataTable` 行,並使用儲存格參照語法 (例如 "A1"、"A2") 將每個值對應到特定的工作表單儲存格。 5.**CSV匯出**:`SaveAsCsv()`方法可處理複雜的 CSV 格式,包括正確轉換特殊字符和處理分隔符。

進階 DataTable 方案如何? 對於具有多列的複雜 `DataTable`s,請像這樣延伸程式碼: ```csharp // 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", ","); ```

輸出是什麼樣子? 輸出的 Excel 工作表顯示如下:

我該如何處理大型 `DataTable`s? 當處理包含數千行的大型 `DataTable`s 時,IronXL.Excel 能維持優異的效能。 資料庫能有效率地處理大量資料集。 對於生產環境,請套用您的 [license key](https://ironsoftware.com/csharp/excel/get-started/license-keys/) 以移除水印並啟用完整功能。

關於錯誤處理? 在處理檔案作業時,務必執行適當的錯誤處理: ```csharp 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}"); } ```

圖書館快速訪問

常見問題解答

如何在 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 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 1,765,830 | 版本: 2025.12 剛發表