使用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。點擊 Create 按鈕,系統會創建一個如下面所示的新項目。

如何在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 DB獲取資料集後,我們將使用這些輸入數據創建一個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, 它包含五個庫:

  1. IronXL,這是今天所探索的。 IronPDF 生成、閱讀和操作 PDF 檔案 IronOCR 從圖像中提取文字工作 IronBarcode 用於讀取和生成條碼

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

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

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

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

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