跳過到頁腳內容
使用 IRONXL

如何在 C# 中導出文件到 CSV

這篇文章將對比和比較各種方法,.NET 技術可以使用最著名的庫之一IronXL以編程方式與 Microsoft Excel 文件進行交互。 此外,它還將創建用於將 Excel 試算表寫入、讀取和匯出到 CSV 文件的設置。

1.1 什麼是 .NET Framework?

Microsoft 創建了一個專有的.NET Framework,這是一個主要兼容 Microsoft Windows 的軟件框架。 它在跨平台 .NET 項目取而代之之前一直是主要的公共語言基礎設施(CLI)實現。 它提供了多種不同編程語言之間的兼容性,並附帶一個名為框架類庫(FCL)的龐大類庫。

1.2 什麼是 CSV?

一種名為「逗號分隔值」的文本文件格式使用逗號將值分割為獨立的列。 表格數據以純文本形式存儲在 CSV 格式的文件中,其中每行通常對應於一條數據記錄。 在 CSV 文件中,每條記錄都有相同數量的字段,這些字段由逗號分隔。

2.0 IronXL 庫功能

可以使用 IronXL for .NET C# Excel 庫讀取 Microsoft Excel 文檔並將其轉換為 CSV 文件。 用戶可以在不安裝 Microsoft Office 或 Microsoft.Office.Interop.Excel的情況下使用 IronXL,這是一個獨立的 .NET 軟件庫。 它能夠讀取多種試算表格式。

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

  • IronXL 是一個兼容 .NET Core 和 .NET Framework 的 C# 庫,是 Excel 試算表最好的解決方案之一。
  • IronXL 支持幾乎所有 .NET Framework,包括 Web 應用程序、Windows 窗體和控制台。
  • IronXL 可以在 Linux、macOS 和 Windows 操作系統下使用。
  • IronXL 可以快速輕鬆訪問 Excel 文件。
  • IronXL 能夠讀取各種 Excel 文件類型,包括 XLSX、CSV、XLS、XLST、TSV、XLSM 等。 導入、更新和輸出數據表和數據集的功能只是該庫眾多選項中的一部分。
  • IronXL 能夠為 Excel 試算表進行計算
  • IronXL 支持 Excel 列中的多種類型數據,包括文本、整數、日期、貨幣、公式和百分比。
  • IronXL 可以處理多個值,以日期、貨幣、百分比、文本、數字、公式等 Excel 列數據類型的形式。

要了解如何將數據導出到 Excel,請參見此教程

3.0 在 Visual Studio 中創建一個新項目

打開Visual Studio並創建一個 .NET 項目以便使用 IronXL 庫。 任何版本的 Visual Studio 都可以使用,但建議使用最新版本。 為了使事情簡單,本文將使用控制台應用程序作為本示例。

如何將文件導出為 CSV 在 C# 中, 圖 1:打開 Visual Studio,進入文件菜單並選擇新建項目。 從各種 .NET 項目模板中選擇 控制台應用程序。 打開 Visual Studio,進入 "文件" 菜單並選擇 "新建項目"。 從各種 .NET 項目模板中選擇 "控制台應用程序"。

然後輸入項目的位置和名稱。

如何將文件導出為 CSV 在 C# 中, 圖 2:在 Visual Studio 中創建一個新項目 在 Visual Studio 中創建新項目

可以使用框架下拉菜單選擇 .NET Framework。 本項目選擇了 .NET Framework 4.7。 接下來,點擊創建按鈕。

應用程序生成解決方案時將打開 program.cs 文件,允許您輸入代碼並構建/運行程序。

如何將文件導出為 CSV 在 C# 中, 圖 3:一旦控制台應用程序項目成功創建,Program.cs 文件將會打開。 一旦控制台應用程序項目成功創建,Program.cs 文件將會打開。

要測試代碼,下一步就是添加 IronXL 庫。

安裝 IronXL 庫,因為它是下一步修復所必需的。 要做到這一點,請在 NuGet 包管理器控制台中輸入以下命令:

Install-Package IronXL -Version 2023.8.29

如何將文件導出為 CSV 在 C# 中, 圖 4:在 NuGet 包管理器控制台中安裝 IronXL 包 在 NuGet 包管理器控制台中安裝 IronXL 包

另一種選擇是使用 NuGet 包管理器來搜索 "IronXL" 包,然後從與 IronXL 相關的所有 NuGet 包中選擇必要的包來下載。

如何將文件導出為 CSV 在 C# 中, 圖 5:使用 NuGet 包管理器安裝 IronXL 包 使用 NuGet 包管理器安裝 IronXL 包

4.0 導出為 CSV 文件

IronXL 使得創建字符串數組到 CSV 文件簡單且快速。 寫入 CSV 文件因此變得更加簡單。 首先,包含 IronXL 命名空間,如下面的代碼截圖所示。 然後,在下面的代碼中使用 IronXL 的類和方法一旦它被引入。

如何將文件導出為 CSV 在 C# 中, 圖 6:包括 IronXL 命名空間 包括 IronXL 命名空間

可以使用 IronXL 創建 Excel 文件,然後將其轉化為工作簿對象。 這個對象提供了多種方法用來處理它們。 下面的代碼示例通過將數組字符串轉換為 Excel 工作表生成了一個 Excel 文件。

using IronXL;
using IronXL.Options;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Array of student names
        string[] students = { "AAA", "BBB", "CCC", "DDD", "EEE", "FFF" };

        // Create a new workbook with an Excel file format of XLS
        var workBook = WorkBook.Create(ExcelFileFormat.XLS);

        // Get the default worksheet (where student data will be written)
        var workSheet = workBook.DefaultWorkSheet;

        // Start adding data to worksheet from row 1
        int rowCount = 1;
        foreach (var student in students)
        {
            // Set the value in column A for student ID
            workSheet["A" + rowCount].Value = rowCount.ToString();

            // Set the value in column B for student name
            workSheet["B" + rowCount].Value = student.ToString();
            rowCount++;
        }

        // Save the workbook as a CSV file with a specified delimiter
        workBook.SaveAsCsv("Sample.csv", ";");

        // Alternately, convert the workbook to a stream
        var stream = workBook.ToStream();
    }
}
using IronXL;
using IronXL.Options;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Array of student names
        string[] students = { "AAA", "BBB", "CCC", "DDD", "EEE", "FFF" };

        // Create a new workbook with an Excel file format of XLS
        var workBook = WorkBook.Create(ExcelFileFormat.XLS);

        // Get the default worksheet (where student data will be written)
        var workSheet = workBook.DefaultWorkSheet;

        // Start adding data to worksheet from row 1
        int rowCount = 1;
        foreach (var student in students)
        {
            // Set the value in column A for student ID
            workSheet["A" + rowCount].Value = rowCount.ToString();

            // Set the value in column B for student name
            workSheet["B" + rowCount].Value = student.ToString();
            rowCount++;
        }

        // Save the workbook as a CSV file with a specified delimiter
        workBook.SaveAsCsv("Sample.csv", ";");

        // Alternately, convert the workbook to a stream
        var stream = workBook.ToStream();
    }
}
Imports IronXL
Imports IronXL.Options
Imports System

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Array of student names
		Dim students() As String = { "AAA", "BBB", "CCC", "DDD", "EEE", "FFF" }

		' Create a new workbook with an Excel file format of XLS
		Dim workBook = WorkBook.Create(ExcelFileFormat.XLS)

		' Get the default worksheet (where student data will be written)
		Dim workSheet = workBook.DefaultWorkSheet

		' Start adding data to worksheet from row 1
		Dim rowCount As Integer = 1
		For Each student In students
			' Set the value in column A for student ID
			workSheet("A" & rowCount).Value = rowCount.ToString()

			' Set the value in column B for student name
			workSheet("B" & rowCount).Value = student.ToString()
			rowCount += 1
		Next student

		' Save the workbook as a CSV file with a specified delimiter
		workBook.SaveAsCsv("Sample.csv", ";")

		' Alternately, convert the workbook to a stream
		Dim stream = workBook.ToStream()
	End Sub
End Class
$vbLabelText   $csharpLabel

上述代碼示例將數組導出到 Excel 文件中。一旦構建了數組,則創建列頭。 一個個地添加行,直至第一列確定。 WorkBook 對象在數據添加到數組字符串中後被創建。 可以使用 WorkBook 對象向 Excel 表中添加數據,然後在其他地方保存它。 其目的是通過創建WorkSheet對象來創建工作表,該對象可以鏈接到工作簿對象。

使用 foreach 循環從數組字符串中讀取每個項目然後將其添加到試算表之前。 當所有數據輸入到工作表中時,使用 SaveAsCsv 方法將數據保存為 CSV 文件。 文件名和位置可以作為可選參數與分隔符一起提供。 然後,該庫幫助將數據寫入新 CSV 文件。若要讀取 CSV 文件而不是使用 Microsoft Excel,可以使用記事本。 IronXL 還支持使用 Save 方法將數據存儲於多種文件格式中,例如 XLS、CSV、XLSX。 或者工作簿可以轉換成流,然後將數據寫入所需位置。

輸出 CSV 文件

如何將文件導出為 CSV 在 C# 中, 圖 7:輸出的 Excel 文件 輸出 Excel 文件

以上是運行代碼示例的輸出結果。 截圖中新生成的 Excel 表格是從字符串數組中逐個添加數據項。

要了解更多有關如何使用 IronXL 將數據導出為 CSV 的信息,請參考此步驟教程

5.0 結論

最受歡迎的 Excel 插件之一是IronXL。 它不依賴於任何其他外部庫。 它是獨立的,不需要安裝 Microsoft Excel。 它通過多個管道運行。

IronXL 提供了一個完整的解決方案來處理所有以編程方式執行的 Microsoft Excel 文檔相關的任務。 可以進行計算、排序字符串或數字、修整、添加、查找和替換、合併和取消合併、保存文件等操作。 除了檢查試算表數據之外,還可以定義單元格數據類型。 它允許您讀取和寫入文件,並使處理 Excel 數據變得更容易。

IronXL 提供免費試用授權,讓用戶可以免費試用其所有主要功能。

IronXL 啟動時為 $799。 如果用戶希望獲得軟件的更新和幫助,他們還可以選擇支付一年的訂閱費用。 IronXL 還提供無限重新分發保護,需要額外收費。 要獲取更多準確的定價信息,請訪問 IronXL 的授權頁面

常見問題解答

如何以程式設計方式在 C# 中將 Excel 數據匯出到 CSV?

要在 C# 中以程式設計方式將 Excel 數據匯出到 CSV,您可以使用 IronXL。首先,在您的 C# 程式中創建一個工作簿和工作表,填充數據,然後使用 SaveAsCsv 方法將數據匯出到 CSV 文件。

在使用 C# 匯出到 CSV 時,是否必須安裝 Microsoft Excel?

不,無需安裝 Microsoft Excel。IronXL 是一個獨立的 .NET 庫,允許您在不需要 Microsoft Office 或 Microsoft.Office.Interop.Excel 的情況下讀取、編輯和匯出 Excel 文件到 CSV。

如何在 Visual Studio 專案中安裝 IronXL?

您可以使用 NuGet 套件管理器主控台在 Visual Studio 專案中安裝 IronXL。運行命令 Install-Package IronXL -Version 2023.8.29 將 IronXL 添加到您的專案中。

使用 IronXL 處理 C# 中的 Excel 任務有什麼好處?

IronXL 提供了一套強大的功能集,用於處理 C# 中的 Excel 任務,如讀取、編輯和將 Excel 試算表匯出為 CSV 文件。它支持多種 .NET 框架和操作系統,無需外部庫,使其適用於不同環境。

IronXL 能處理 Excel 文件中的計算和數據操作嗎?

是的,IronXL 能處理計算、排序、合併和管理 Excel 文件中的不同數據類型,提供全面的 Excel 任務解決方案。

IronXL 支持哪些平台來進行 Excel 集成?

IronXL 支持多個平台,包括 .NET Core、.NET Framework、Xamarin、Linux、macOS、Azure 和 Windows,允許跨各種系統靈活部署。

IronXL 能讀寫哪些文件格式?

IronXL 能讀寫各種 Excel 文件格式,包括 XLSX、CSV、XLS、XLST、TSV、XLSM 等,方便無縫的數據集成和匯出。

IronXL 提供試用版嗎?

是的,IronXL 提供免費的試用版本,讓您在全面授權之前探索其功能和能力。

如何在 C# 中將數據數組轉換為 CSV 文件?

使用 IronXL,您可以將數據數組轉換為 Excel 工作表,然後使用 SaveAsCsv 方法將其匯出為 CSV 文件,簡化且高效的數據轉換。

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