跳至頁尾內容
USING IRONXL

如何在 .NET Core 中導出到 CSV

1.0 介紹

本文章將使用最知名的程式庫之一,IronXL,來對比和比較 .NET 技術如何以程式方式與 Microsoft Excel 文件進行接口。 它還將建立一個環境,用於讀取、寫入和匯出 Excel 試算表到 CSV 文件。

2.0 IronXL

IronXL for .NET 是一個 C# Excel 程式庫,可以用來讀取和轉換 Microsoft Excel 文件為 CSV 文件。 IronXL 是一個獨立的 .NET 軟體程式庫,可以不安裝 Microsoft Office 或 Microsoft.Office.Interop.Excel 的情況下使用。 它可以讀取各種試算表格式。

在 .NET 環境中,IronXL 的簡單 C# API 讓 Excel 試算表的讀取、編輯和生成變得容易。 IronXL 完全支援Xamarin、Linux、macOS、Azure、.NET Core 和 .NET Framework。

2.1 IronXL 程式庫功能

  • IronXL是 Excel 試算表中最出色的C#程式庫之一,適用於 .NET Core 和 .NET Framework。
  • IronXL 支援虛擬上所有的 .NET Framework,包括控制台、Windows 窗體和 Web 應用程式。
  • IronXL 相容於 Windows、macOS 和 Linux。
  • 使用 IronXL,可快速輕鬆地存取 Excel 文件。
  • IronXL 可讀取 Excel 文件格式如 XLSX 文件、CSV 文件、XLS、XSLT、TSV、XLSM 及其他格式。 在許多可能性中,功能包括匯入、更新和匯出資料集和資料表
  • IronXL 可為 Excel 試算表生成計算
  • IronXL 支援廣泛的資料型別,例如文字、整數、日期、貨幣、公式和百分比,用於 Excel 欄目。
  • IronXL 支援日期、貨幣、百分比、文字、數字、公式和其他 Excel 欄目資料型別

3.0 建立 .NET Core 6 項目

您將在接下來的新聞信中看到使用 IronXL 程式庫生成 CSV 文件是多麼簡單。

步驟 1:啟動一個新項目以生成 CSV 文件。

打開 Visual Studio,並從 "檔案" 選單中選擇 "新專案"。

在隨後的對話框中選擇 "控制台應用" .NET 專案模板,然後點擊 "下一步"。

如何在 .NET Core 中匯出到 CSV,圖1:在 Visual Studio 中建立新控制台應用程式 在 Visual Studio 中建立新控制台應用程式

您可以為"專案名稱"輸入您想要的任何名稱。 在"位置"部分提供新項目的位置後,點擊下一步按鈕繼續。

如何在 .NET Core 中匯出到 CSV,圖2:配置新項目 配置新項目

可以使用框架下拉選單選擇 .NET Framework。 在這種情況下,長期支持的 .NET 版本為 6.0。接下來,點擊建立按鈕。

如何在 .NET Core 中匯出到 CSV,圖3:.NET 目標框架選擇 .NET 目標框架選擇

安裝 IronXL 程式庫,因為它是後續解決方案所需的。 在包管理器控制台中輸入以下命令來完成此操作:

Install-Package IronXL.Excel

如何在 .NET Core 中匯出到 CSV,圖4:安裝 IronXL 包 安裝IronXL套件

另一種選擇是使用 NuGet 包管理器搜索 "IronXL" 包。 在"瀏覽"標籤下,輸入 "IronXL" 在搜索框中以搜索 IronXL 程式庫。 從這份所有與 IronXL 相關的 NuGet 包列表中,然後選擇所需的包進行下載。

如何在 .NET Core 中匯出到 CSV,圖5:在 NuGet 包管理器 UI 中搜索和安裝 IronXL 包 在NuGet套件管理器UI中搜索並安裝IronXL套件

4.0 匯出資料到 CSV 文件

using IronXL,建立資料表到 CSV 文件簡單而迅速。 它便於將資料寫入一個新的 CSV 文件。第一步是包含 IronXL 命名空間,如下圖的程式碼截圖所示。 一旦引入 IronXL,它的類和方法就可以在程式碼中使用。

如何在 .NET Core 中匯出到 CSV,圖6:包含 IronXL 命名空間 包含 IronXL 命名空間

IronXL 可以用於建立 Excel 文件,然後轉換為 WorkBook 物件。 一旦它們成為 WorkBook 類的物件,就可以用多種方式對它們進行操作。 通過將 DataTable 轉換為 Excel 工作表,以下範例源程式碼建立了一個 Excel 文件。

using IronXL;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        ExportToExcel("test.csv");
    }

    // Method to export a DataTable to an Excel sheet which is then saved as a CSV file
    public static void ExportToExcel(string filepath)
    {
        // Create a DataTable and add columns & rows
        DataTable table = new DataTable();
        table.Columns.Add("DataSet_Animals", typeof(string));
        table.Rows.Add("Lion");
        table.Rows.Add("Tiger");
        table.Rows.Add("Leopard");
        table.Rows.Add("Cheetah");
        table.Rows.Add("Hyenas");

        // Create a new workbook and get the default worksheet
        var workbook = WorkBook.Create(ExcelFileFormat.XLS);
        var worksheet = workbook.DefaultWorkSheet;

        // Add table data to worksheet
        int rowCount = 1;
        foreach (DataRow row in table.Rows)
        {
            worksheet["A" + rowCount].Value = row[0].ToString();
            rowCount++;
        }

        // Save worksheet data to a CSV file
        workbook.SaveAsCsv(filepath, ";");

        // Optionally convert workbook to a stream, useful for web applications
        var stream = workbook.ToStream();
    }
}
using IronXL;
using System.Data;

class Program
{
    static void Main(string[] args)
    {
        ExportToExcel("test.csv");
    }

    // Method to export a DataTable to an Excel sheet which is then saved as a CSV file
    public static void ExportToExcel(string filepath)
    {
        // Create a DataTable and add columns & rows
        DataTable table = new DataTable();
        table.Columns.Add("DataSet_Animals", typeof(string));
        table.Rows.Add("Lion");
        table.Rows.Add("Tiger");
        table.Rows.Add("Leopard");
        table.Rows.Add("Cheetah");
        table.Rows.Add("Hyenas");

        // Create a new workbook and get the default worksheet
        var workbook = WorkBook.Create(ExcelFileFormat.XLS);
        var worksheet = workbook.DefaultWorkSheet;

        // Add table data to worksheet
        int rowCount = 1;
        foreach (DataRow row in table.Rows)
        {
            worksheet["A" + rowCount].Value = row[0].ToString();
            rowCount++;
        }

        // Save worksheet data to a CSV file
        workbook.SaveAsCsv(filepath, ";");

        // Optionally convert workbook to a stream, useful for web applications
        var stream = workbook.ToStream();
    }
}
Imports IronXL
Imports System.Data

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		ExportToExcel("test.csv")
	End Sub

	' Method to export a DataTable to an Excel sheet which is then saved as a CSV file
	Public Shared Sub ExportToExcel(ByVal filepath As String)
		' Create a DataTable and add columns & rows
		Dim table As New DataTable()
		table.Columns.Add("DataSet_Animals", GetType(String))
		table.Rows.Add("Lion")
		table.Rows.Add("Tiger")
		table.Rows.Add("Leopard")
		table.Rows.Add("Cheetah")
		table.Rows.Add("Hyenas")

		' Create a new workbook and get the default worksheet
		Dim workbook = WorkBook.Create(ExcelFileFormat.XLS)
		Dim worksheet = workbook.DefaultWorkSheet

		' Add table data to worksheet
		Dim rowCount As Integer = 1
		For Each row As DataRow In table.Rows
			worksheet("A" & rowCount).Value = row(0).ToString()
			rowCount += 1
		Next row

		' Save worksheet data to a CSV file
		workbook.SaveAsCsv(filepath, ";")

		' Optionally convert workbook to a stream, useful for web applications
		Dim stream = workbook.ToStream()
	End Sub
End Class
$vbLabelText   $csharpLabel

上面的 CSV 範例顯示了如何將 DataTable 匯出到 CSV 文件中。在建立 DataTable,即建立欄位標題後,並建立第一個欄位後,一行一行新增行。將行和列新增到 DataTable物件後,便構建 WorkBook物件。 WorkBook物件用於將資料新增到 Excel 表中,然後可以在其他地方保存。 下一步是啟動與活頁簿物件連結的WorkSheet物件。

在將值新增到工作表之前,使用 foreach 環讀取 DataTable 的每個值。 一旦將所有資料放入工作表,使用檔案名稱作為參數,通過SaveAsCsv函式將資料保存至 CSV 文件。 如果需要,可以作為可選參數使用分隔符。 程式庫然後協助將資料寫入 CSV 文件。除使用 Microsoft Excel 外,還有其他方法使用記事本讀取 CSV 文件。 同樣,方法Save 用於將相同內容保存至指定文件格式。

如何在 .NET Core 中匯出到 CSV,圖7:輸出 Excel 文件 test.csv 輸出 Excel 文件 test.csv

上面是運行的程式碼樣本輸出。 從資料表中的每一個資訊都被分別新增到新建立的 Excel 表中,見截圖。 或者,它也可以轉換為Web應用程式的一部分流,以返回從客戶端下載的文件。

有關如何從DataTable匯出資料到Excel的更多資訊,請查看此教程頁面。

欲知如何將資料匯出至 Excel,請參考此逐步教程

5.0 結論

IronXL是最廣泛使用的 Excel 工具之一。 它不依賴於其他外部程式庫。 它是獨立的,不需要安裝 Microsoft Excel。 此外,它可以通過各種渠道運作。

對於所有程式化實現的 Microsoft Excel 文件相關操作而言,IronXL 提供了全面的解決方案。 計算公式、對字串或數字排序、修剪、附加、查找和替換、合併和取消合併、保存文件等都可實現。 除了驗證試算表資料外,您還可以建立單元格資料型別。這有助於處理 Excel 資料,允許您讀寫文件。

IronXL 提供免費試用授權,讓使用者可免費嘗試和測試所有驚人的功能。

IronXL 在啟動時可供 $999 使用。 使用者也可選擇支付一年訂閱費,以獲得更新和產品協助。 IronXL 以額外收費提供不受限制的再分發安全性。 欲查找更精確定價資料,請拜訪 IronXL 的授權頁面

常見問題

如何使用 .NET Core 將資料匯出到 CSV 文件?

您可以在 .NET Core 應用程式中使用 IronXL 將資料匯出到 CSV 文件。首先在 Visual Studio 中設置一個新的 .NET Core 專案,通過 NuGet 安裝 IronXL,並使用其 WorkBookWorkSheet 物件通過 SaveAsCsv 方法將您的資料保存為 CSV 文件。

是否可以在沒有 Microsoft Office 的情況下讀寫 Excel 文件?

是的,IronXL 允許您在不需要 Microsoft Office 和 Microsoft.Office.Interop.Excel 的情況下讀寫 Excel 文件。它提供了一個獨立的解決方案來在 .NET 應用程式中管理 Excel 試算表。

using IronXL 在 .NET Core 中匯出 CSV 的好處是什麼?

IronXL 提供了一種簡單而高效的方式來處理 .NET Core 中的 CSV 匯出。它支持多個平台,不需要 Microsoft Office,並提供功能如公式計算、資料排序和大資料集處理。

如何在 .NET Core 專案中安裝 IronXL?

要在 .NET Core 專案中安裝 IronXL,您可以使用 Package Manager Console 的命令 Install-Package IronXL,或在 Visual Studio 中使用 NuGet Package Manager UI 搜索並安裝 'IronXL'。

我可以在 Windows 以外的平台上使用 IronXL 嗎?

是的,IronXL 與包括 Windows、macOS 和 Linux 在內的多個平台相容。它還支持 Xamarin、Azure、.NET Core 和 .NET Framework 應用程式,使其在各種環境中的應用變得多樣化。

如何使用 IronXL 處理 Excel 中的大資料集?

IronXL 可以通過利用其強大的 C# API 有效地處理 Excel 中的大資料集。它允許快速的資料操作,支持各種 Excel 格式,並提供如排序和資料驗證之類的功能。

IronXL 支持 Excel 公式計算嗎?

是的,IronXL 支持 Excel 公式計算。您可以使用 IronXL 的 API 在您的試算表資料上進行複雜計算,就像您在 Excel 中所做的那樣。

IronXL 有哪些授權選項?

IronXL 提供免費試用授權以測試其功能,以及各種功能完整的授權選項。這為開發人員提供了選擇適合其需求的計劃的彈性。

Curtis Chau
技術作家

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

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

Iron 支援團隊

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