跳至頁尾內容
USING IRONXL
如何在C#中將資料集轉換成CSV | IronXL

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

以下文章將示範如何將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,並輸入以下命令。

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');

以下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");
    }
}
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");
    }
}
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports IronXL

Friend Class Program
	' Method to retrieve data from SQL database and return as DataTable
	Public Shared Function GetData() As DataTable
		' Define connection string (modify accordingly for your local server)
		Dim connString As String = "server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;"
		Dim query As String = "SELECT * FROM STUDENT_DATA"

		Try
			' Create SQL connection
			Using conn As New SqlConnection(connString)
				' Create SQL command
				Dim cmd As New SqlCommand(query, conn)
				conn.Open()
				' Create data adapter
				Using da As New SqlDataAdapter(cmd)
					' Query the database and return the result to a data table
					Dim dt As New DataTable()
					da.Fill(dt)
					Return dt
				End Using
			End Using
		Catch ex As Exception
			Console.WriteLine($"An error occurred: {ex.Message}")
			Throw
		End Try
	End Function

	Shared Sub Main(ByVal args() As String)
		' Retrieve data and store it in a DataTable
		Dim table As DataTable = GetData()

		' Create a new Workbook
		Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
		wb.Metadata.Author = "JOHN"

		' Use the default worksheet
		Dim ws As WorkSheet = wb.DefaultWorkSheet
		Dim rowCount As Integer = 1

		' Populate the worksheet with data from the DataTable
		For Each row As DataRow 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 += 1
		Next row

		' Save the workbook as a CSV file
		wb.SaveAsCsv("D:\Tutorial Project\Save_DataTable_CSV.csv")
	End Sub
End Class
$vbLabelText   $csharpLabel

程式碼解釋

  • 方法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 用於從網站提取結構化資料。

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

常見問題

如何將C#資料集轉換為CSV文件?

您可以使用IronXL將C#資料集轉換為CSV文件。首先,從來源檢索資料,例如SQL Server資料庫,並將其填充到DataTable中。然後,使用IronXL將DataTable匯出為CSV文件。

在.NET中處理Excel文件是否需要Microsoft Office?

不,使用IronXL在.NET中處理Excel文件不需要Microsoft Office。IronXL獨立運作,無需Office或Interop相依性。

安裝IronXL以處理電子表格的最佳方法是什麼?

安裝IronXL以處理電子表格的最佳方法是通過Visual Studio中的NuGet包管理器控制台。使用命令:Install-Package IronXL.Excel

IronXL在處理電子表格時如何提高生產力?

IronXL通過讓開發者能夠快速且輕鬆地在.NET應用程式內讀取、生成和編輯Excel和CSV文件,提高了生產力,無需額外的軟體安裝或相依性。

我可以使用IronXL從任何資料來源生成CSV文件嗎?

是的,您可以使用IronXL從任何資料來源生成CSV文件。文章展示了如何從SQL Server資料庫中填充DataTable,然後使用IronXL將其匯出為CSV。

IronXL是否與最新的.NET版本相容?

是的,IronXL與最新的.NET版本相容,包括.NET 7,並在這些平台上提供性能提升的好處。

使用IronXL進行電子表格任務的主要優勢是什麼?

使用IronXL的主要優勢包括可以不依賴Microsoft Office處理電子表格,支持所有.NET版本,以及簡單的資料集轉換成CSV文件的效率高。

Iron Suite是什麼,它包括什麼?

Iron Suite是一系列庫,包括用於Excel文件的IronXL、用於PDF的IronPDF、從圖像提取文字的IronOCR、條碼的IronBarcode和用於網頁資料提取的IronWebScraper。

Curtis Chau
技術作家

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

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話