IRONSOFTWAREHOME
USING IRONXL

如何在 C# 中將資料集轉換為 CSV

Curtis Chau
Curtis Chau
Updated: 2026年4月21日

以下文章將示範如何將C#資料集轉換成CSV檔案。

IronXL 是處理試算表的絕佳解決方案,不論是CSV格式或Excel檔案。 IronXL對於開發是免費的,易於使用,並提供豐富的功能來處理各種試算表。 它是安全的,並提供高效能。 在繼續之前,讓我們簡單介紹一下IronXL。

IronXL

IronXL是Iron Software 提供的程式庫,使C#開發者可以在.NET應用程式和網站中讀取、生成及編輯Excel(及其他試算表檔案)。

IronXL是在C#及.NET中處理Excel和其他試算表檔案的快速簡便方法。 IronXL可與.NET Framework、.NET Core和Azure完美搭配使用,無需Office Excel Interop。IronXL也不需安裝Microsoft Office或任何其他此類依賴。

現在進入建立並撰寫程式碼以為資料集建立CSV檔的過程。

建立新的Visual Studio專案

打開Visual Studio IDE;建議使用最新版的Visual Studio,但您可以根據自己的喜好使用任何版本。 請注意,建立新專案的步驟可能隨版本不同而有所變化。

如何在C#中將資料集轉換為CSV,圖1:Visual Studio的啟動窗口⟩

Visual Studio的啟動窗口

單擊建立新專案。 將會出現如下所示的新窗口。

如何在C#中將資料集轉換為CSV,圖2:在Visual Studio中建立新專案⟩

在Visual Studio中建立新專案

從列表中選擇您偏好的專案模板。單擊下一步按鈕,將出現如下所示的新窗口。

如何在C#中將資料集轉換為CSV,圖3:配置新建立的專案⟩

配置新建立的專案

命名您的專案,選擇其位置,然後按下下一步按鈕。 將會出現如下所示的新窗口。

如何在C#中將資料集轉換為CSV,圖4:選擇一個.NET Framework版本⟩

選擇一個.NET Framework版本

選擇您的目標.NET Framework。 您可以選擇任何符合您需求的.NET Framework,因為IronXL支持所有.NET Framework。 本教程將使用.NET 7。單擊建立按鈕,將建立一個新專案,如下所示。

如何在C#中將資料集轉換為CSV,圖5:在Visual Studio中的新控制台應用程式⟩

在Visual Studio中的新控制台應用程式

現在,安裝IronXL NuGet Package以便在此應用程式中使用它。

安裝IronXL

打開NuGet Package Manager Console,並輸入以下命令。

PM > Install-Package IronXL.Excel

NuGet Package將被安裝並可以使用,如下所示。

如何在C#中將資料集轉換為CSV,圖6:安裝IronXL套件及其套件依賴⟩

安裝IronXL套件及其套件依賴

現在,讓我們撰寫一些程式碼以將資料集轉換為C#中的CSV檔案。

本範例將從SQL Server資料庫中提取資料。 在從SQL DB獲取資料集後,我們將使用此輸入資料建立一個CSV檔案。

建立資料表

第一步是從SQL中提取資料,但您可以使用任何您喜好的資料來源。

本教程使用以下資料:

如何在C#中將資料集轉換為CSV,圖7:建立一個帶有範例資料的新資料庫⟩

建立一個帶有範例資料的新資料庫

以下是用於建立範例資料的SQL腳本:

USE Test_DB;

CREATE TABLE STUDENT_DATA
(
    REG_NUM INT PRIMARY KEY,
    FIRST_NAME VARCHAR(30),
    LAST_NAME VARCHAR(30),
    CLASS VARCHAR(5),
    CONTACT_NUM VARCHAR(15)
);

INSERT INTO STUDENT_DATA
VALUES
(123, 'JHON', 'SMITH', '2', '(223) 444-1234'),
(124, 'THOMAS', 'CHARLES', '2', '(332) 555-1235'),
(125, 'WILLIAM', 'RICHARD', '2', '(432) 666-1236'),
(126, 'JAMES', 'BOND', '2', '(543) 777-1237'),
(127, 'CRISTOPHER', 'MICHAL', '2', '(555) 999-1238'),
(128, 'DONALD', 'MARK', '2', '(777) 888-1239');
Text

以下C#程式碼用於將資料表匯出為CSV檔案。

using System;
using System.Data;
using System.Data.SqlClient;
using IronXL;

class Program
{
    // Method to retrieve data from SQL database and return as DataTable
    public static DataTable GetData()
    {
        // Define connection string (modify accordingly for your local server)
        string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
        string query = "SELECT * FROM STUDENT_DATA";

        try
        {
            // Create SQL connection
            using SqlConnection conn = new SqlConnection(connString);
            // Create SQL command
            SqlCommand cmd = new SqlCommand(query, conn);
            conn.Open();
            // Create data adapter
            using SqlDataAdapter da = new SqlDataAdapter(cmd);
            // Query the database and return the result to a data table
            DataTable dt = new DataTable();
            da.Fill(dt);
            return dt;
        }
        catch (Exception ex)
        {
            Console.WriteLine($"An error occurred: {ex.Message}");
            throw;
        }
    }

    static void Main(string[] args)
    {
        // Retrieve data and store it in a DataTable
        DataTable table = GetData();

        // Create a new Workbook
        WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
        wb.Metadata.Author = "JOHN";

        // Use the default worksheet
        WorkSheet ws = wb.DefaultWorkSheet;
        int rowCount = 1;

        // Populate the worksheet with data from the DataTable
        foreach (DataRow row in table.Rows)
        {
            ws[$"A{rowCount}"].Value = row[0].ToString();
            ws[$"B{rowCount}"].Value = row[1].ToString();
            ws[$"C{rowCount}"].Value = row[2].ToString();
            ws[$"D{rowCount}"].Value = row[3].ToString();
            ws[$"E{rowCount}"].Value = row[4].ToString();
            rowCount++;
        }

        // Save the workbook as a CSV file
        wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv");
    }
}

程式碼解釋

  • 方法GetData()從SQL Server資料庫中提取資料並將其作為DataTable返回。

  • WorkSheet中。

  • 一個WorkSheet的新行中。

  • 最後,使用IronXL提供的SaveAsCsv功能保存CSV文件。

輸出

此程式生成的CSV檔文件如下:

如何在C#中將資料集轉換為CSV,圖8:CSV輸出文件⟩

CSV輸出文件

很明顯,CSV文件生成充分並與提供的輸入資料對齊。

總結

本文示範了如何從資料集在C#中建立CSV檔案。 該程式庫還可以使用C#讀取CSV文件。 從SQL Server資料庫中提取的資料集可通過以下三個步驟建立CSV檔文件:

  1. 從SQL Server獲取資料。
  2. 將資料填充到資料表中。
  3. 從該資料表中建立CSV檔。

使用IronXL在.NET 7中建立CSV檔非常簡單,如上所示。 這款程式性能極佳,因為使用.NET 7和IronXL編寫。 IronXL提供其他實用功能,例如建立、讀取和操作Excel檔案。 欲了解更多詳情,請存取官方文件

此外,IronPDF為開發者提供了將PDF文件渲染為圖片和從PDF中提取文字和內容的方法。 此外,IronPDF也能夠在PDF中渲染圖表新增條碼程式化的使用密碼增強安全性

IronXL的免費版本用於開發用途。 若要在生產環境中部署應用程式,請獲取免費試用版或商業授權。 IronXL是Iron Suite的一部分,其中包含五個程式庫:

  1. IronXL,今天已經介紹。
  2. IronPDF 用於生成、讀取和操作PDF文件
  3. IronOCR 用於從圖片提取文字
  4. IronBarcode 用於讀取和生成條碼
  5. IronWebScraper 用於從網站提取結構化資料。

若一同購買,您可以以兩者的價格獲得所有這些產品。

Curtis Chau
技術作家

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

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預約您的免費即時演示
Booking Badge

全球數百萬工程師的信賴

Iron Software的客戶標誌
獲得無義務諮詢
填寫以下表格或電郵sales@ironsoftware.com
您的資料將始終保密。
全球數百萬工程師的信賴
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立