跳過到頁腳內容
使用 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包,以便在本應用程式中使用它。

安裝IronXL

開啟NuGet套件管理員控制台,並輸入以下命令。

Install-Package IronXl.Excel

NuGet套件將安裝完成並可供使用,如下所示。

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

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

本範例將從 SQL Server 資料庫填入資料。 從 SQL 資料庫取得資料集後,我們將使用這些輸入資料建立一個 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");
    }
}
$vbLabelText   $csharpLabel

程式碼解釋

  • 方法 GetData() 從 SQL Server 資料庫檢索資料並將其作為 DataTable 傳回。

  • Main 方法中,使用IronXL建立 WorkBook,然後將資料填入 WorkSheet

  • 一個 foreach 循環遍歷 DataTable 的行,將每個值插入到 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的一部分,Iron Suite 由五個庫組成:

  1. IronXL ,今天我們將對其進行探討。
  2. IronPDF用於產生、讀取和操作 PDF 文件
  3. IronOCR用於從圖像中提取文本
  4. IronBarcode用於讀取和產生條碼
  5. IronWebScraper用於從網站提取結構化資料。

如果同時購買,這些產品只需兩件的價格即可獲得。

常見問題解答

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

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

我需要 Microsoft Office 才能在 .NET 中處理 Excel 文件嗎?

不,在使用 IronXL 時,您不需要 Microsoft Office 即可在 .NET 中處理 Excel 文件。IronXL 獨立運行,無需 Office 或 Interop 依賴項。

在 .NET 中處理電子表格的最佳安裝方式是什麼?

在 .NET 中處理電子表格的最佳安裝方式是通過 Visual Studio 的 NuGet 封裝管理器控制台安裝 IronXL。使用命令: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。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担產品测测试,產品開發和研究的责任時,Jordi 為持续的產品改進增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me