跳過到頁腳內容
使用 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即可使用。 它可以讀取多種電子表格格式。

透過 IronXL 簡單易用的 C# API,可以在 .NET 環境中輕鬆讀取、編輯和產生 Excel 電子表格。 IronXL 完全支援 Xamarin、Linux、macOS、Azure、.NET Core 和 .NET Framework。

2.1 IronXL 庫功能

  • IronXL 是最優秀的 C# Excel 試算表庫之一,它同時適用於 .NET Core 和 .NET Framework。
  • IronXL 支援幾乎所有 .NET Framework,包括控制台、Windows 窗體和 Web 應用程式。
  • IronXL 與 Windows、macOS 和 Linux 皆相容。
  • 使用 IronXL 可以快速輕鬆地存取 Excel 檔案。 IronXL 可以讀取 XLSX 檔案、CSV 檔案、XLS、XSLT、TSV、XLSM 等 Excel 檔案格式。 眾多功能中包含匯入、更新和匯出資料集和資料表的功能。
  • IronXL 可以產生 Excel 電子表格的計算結果
  • 對於 Excel 列,IronXL 支援多種資料類型,例如文字、整數、日期、貨幣、公式和百分比。 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 文件

使用 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。 此外,它還透過多種管道發揮作用。

IronXL為所有透過程式實現的 Microsoft Excel 文件相關操作提供全面的解決方案。 計算公式、對字串或數字進行排序、修剪、追加、尋找和替換、合併和取消合併、保存檔案等等,這些操作都是可能的。 除了驗證電子表格資料外,您還可以設定儲存格資料類型。它簡化了 Excel 資料的處理,並允許您讀取和寫入檔案。

IronXL 提供免費試用許可證,用戶可以免費試用和測試其所有令人驚嘆的功能。

IronXL 在發佈時以$799價格提供。 用戶也可以選擇支付一年的訂閱費,以獲得更新和產品支援。 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 試算表的獨立解決方案。

在 .NET Core 中使用 IronXL 進行 CSV 匯出有哪些好處?

IronXL 為 .NET Core 提供了簡單有效的方式來處理 CSV 匯出。它支援多種平台,不需要 Microsoft Office,並提供公式計算、資料排序和大型資料集處理等功能。

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

若要在 .NET Core 專案中安裝 IronXL,您可以使用套件管理員控制台的 Install-Package IronXL 指令,或使用 Visual Studio 中的 NuGet 套件管理員使用者介面搜尋並安裝「IronXL」。

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

是的,IronXL 與多種平台相容,包括 Windows、macOS 和 Linux。它也支援 Xamarin、Azure、.NET Core 和 .NET Framework 應用程式,因此適用於各種環境。

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

IronXL.Excel 可利用其強大的 C# API 高效處理 Excel 中的大型資料集。它允許快速的資料處理,支援各種 Excel 格式,並提供排序和驗證資料等功能。

IronXL 支援 Excel 公式計算嗎?

是的,IronXL 支援 Excel 公式計算。您可以使用 IronXL.Excel 的 API 對您的試算表資料執行複雜的計算,就像在 Excel 中一樣。

IronXL 是否有授權選項?

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

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