使用IRONXL

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

已更新 2024年2月20日
分享:

以下文章將演示如何將 C# 資料集轉換為 CSV 文件。

IronXL是一個處理電子表格的絕佳解決方案,不論是 CSV 格式還是 Excel 文件。 IronXL 是免費開發的,易於使用,並提供廣泛的功能以處理任何類型的電子表格。 它安全且提供高效能。 在繼續之前,讓我們簡單介紹一下IronXL。

IronXL

IronXL 是一個Iron Software允許 C# 開發人員讀取、生成和編輯 Excel 的庫(以及其他電子表格文件)在 .NET 應用程式和網站中。

IronXL 是在 C# 和 .NET 中處理 Excel 和其他試算表文件的一個快速且簡單的方法。 IronXL 與 .NET Framework、.NET Core 和 Azure 配合良好,無需使用 Office Excel Interopm。 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 套件以便在此應用程式中使用。

安裝 IronXL

開啟 NuGet 套件管理器主控台,然後輸入以下命令。

Install-Package IronXL.Excel

NuGet 套件將安裝並準備就緒,如下所示。

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

IronXL 套件及其套件依賴性的安裝

現在,讓我們來寫一些程式碼將數據集轉換為 C# 中的 CSV 文件。

此範例將從 SQL 伺服器資料庫填充資料。 從 SQL 資料庫獲取資料集後,我們將使用此輸入資料創建一個 CSV 檔案。

建立資料表格

第一步是從 SQL 填充數據,但您可以使用您偏好的任何數據來源。

本教程使用以下資料:

如何在C#中將Dataset轉換為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 檔案。

public static DataTable getData()
{
    string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
    string query = "select * from STUDENT_DATA";
    try
    {
        SqlConnection conn = new SqlConnection(connString);
        SqlCommand cmd = new SqlCommand(query, conn);
        conn.Open();
        // create data adapter
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        // this will query your database and return the result to your datatable
        DataTable dt = new DataTable();
        da.Fill(dt);
        da.Dispose();
        return dt;
    } catch(Exception)
    {
        throw;
    }
}

static void Main(string [] args)
{
    DataTable table = getData();
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    wb.Metadata.Author = "JOHN";
    WorkSheet ws = wb.DefaultWorkSheet;
    int rowCount = 1;
    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++;
    }
    wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv"); // 
}
public static DataTable getData()
{
    string connString = @"server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;";
    string query = "select * from STUDENT_DATA";
    try
    {
        SqlConnection conn = new SqlConnection(connString);
        SqlCommand cmd = new SqlCommand(query, conn);
        conn.Open();
        // create data adapter
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        // this will query your database and return the result to your datatable
        DataTable dt = new DataTable();
        da.Fill(dt);
        da.Dispose();
        return dt;
    } catch(Exception)
    {
        throw;
    }
}

static void Main(string [] args)
{
    DataTable table = getData();
    WorkBook wb = WorkBook.Create(ExcelFileFormat.XLS);
    wb.Metadata.Author = "JOHN";
    WorkSheet ws = wb.DefaultWorkSheet;
    int rowCount = 1;
    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++;
    }
    wb.SaveAsCsv(@"D:\Tutorial Project\Save_DataTable_CSV.csv"); // 
}
Public Shared Function getData() As DataTable
	Dim connString As String = "server=DESKTOP-NIP3TOE\SQLEXPRESS; Database=Test_DB; Integrated Security=True;"
	Dim query As String = "select * from STUDENT_DATA"
	Try
		Dim conn As New SqlConnection(connString)
		Dim cmd As New SqlCommand(query, conn)
		conn.Open()
		' create data adapter
		Dim da As New SqlDataAdapter(cmd)
		' this will query your database and return the result to your datatable
		Dim dt As New DataTable()
		da.Fill(dt)
		da.Dispose()
		Return dt
	Catch e1 As Exception
		Throw
	End Try
End Function

Shared Sub Main(ByVal args() As String)
	Dim table As DataTable = getData()
	Dim wb As WorkBook = WorkBook.Create(ExcelFileFormat.XLS)
	wb.Metadata.Author = "JOHN"
	Dim ws As WorkSheet = wb.DefaultWorkSheet
	Dim rowCount As Integer = 1
	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
	wb.SaveAsCsv("D:\Tutorial Project\Save_DataTable_CSV.csv")
End Sub
VB   C#

程式碼說明

方法 getData()將從前面討論的 SQL Server 資料庫中檢索資料。

在主函數中,它將創建一個Workbook使用IronXL 然後創建一個工作表.

for 迴圈中,資料將被填入指定工作表的行中。

之後,將此文件另存為 CSV 格式,使用SaveAsCsv由IronXL提供的函數。

輸出

此程序生成的 CSV 文件如下:

如何在 C# 中將 Dataset 轉換為 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 是IronSuite,由五個庫組成:

  4. IronXL,這在今天被探索。

    2.IronPDF用於生成、讀取和操作 PDF 文件

  5. IronOCR用於從圖像中提取文字工作

    4.IronBarcode用於讀取和生成條碼

  6. IronWebScraper從網站中提取結構化數據。

    如果一起購買,您可以以兩個產品的價格獲得所有這些產品。

< 上一頁
如何在 C# 中導入 Excel 文件
下一個 >
如何在 VB.NET 中寫入 Excel 文件

準備開始了嗎? 版本: 2024.11 剛剛發布

免費 NuGet 下載 總下載次數: 1,111,773 查看許可證 >