使用IRONXL

C# CSV 解析程式 (逐步) 教程

已更新 2024年1月29日
分享:

您是否曾經在嘗試解析 CSV 文件並將其轉換為 XLSX 或將 XLSX 文件轉換為 CSV 文件以完成某些重要任務時,卻無法在 .NET 中做到這一點而不用編寫大量程式碼?

有許多 CSV 庫能夠解決這個問題。 然而,IronXL在本博客中,將使用 C# Excel Library 僅需兩行程式碼來執行這些任務。

要開始,您只需要 Visual Studio,然後按照以下詳細說明進行安裝。

1. 在 Visual Studio 中創建新專案

打開 Visual Studio 編輯器。

在 Visual Studio 中,前往檔案選單。 選擇「新專案」,然後選擇主控台應用程式。

輸入專案名稱並選擇專案位置。 然後,點擊建立按鈕以建立專案。 選擇所需的 .NET Framework,如下圖所示:

C# CSV 解析器(逐步)教程,圖1:創建一個新的 C#。 .NET 主控台應用程式

創建新的 C#。 .NET 控制台應用程式

program.cs 檔案將會開啟,您可以輸入邏輯並創建/運行應用程式。

2. 安裝 IronXL C# 函式庫

IronXL 庫可以通過多種不同方式下載和安裝。 今天,我們將專注於其中兩個:

  • 使用 Visual Studio 的 NuGet 套件管理器
  • 使用 Visual Studio 命令行

2.1. 使用 Visual Studio NuGet 套件管理器

您可以在 Visual Studio 中使用 NuGet 套件管理器 UI 將套件直接安裝到項目中。 以下截圖顯示如何打開它。

C# CSV 解析器(逐步)教程,圖 2:使用 Visual Studio NuGet 套件管理器 GUI 安裝 IronXL

使用 Visual Studio NuGet 套件管理器 GUI 安裝 IronXL

套件管理器 UI 提供了瀏覽功能,顯示 NuGet 網站上提供的套件庫列表。輸入「IronXL」關鍵字,如下圖所示,以找到 IronXL 套件。

C# CSV 解析器(分步)教程,圖 3:通過在瀏覽部分搜索 IronXL 庫,在 NuGet 包管理器中找到它

在 NuGet 套件管理器的「瀏覽」區域搜尋 IronXL 函式庫

選擇 IronXL.Excel 套件,然後點擊 安裝 按鈕將其添加到專案中。

2.2. 使用 Visual Studio 命令行

在 Visual Studio 菜單中,前往 工具 > NuGet 套件管理器 > 點擊 套件管理器主控台

C# CSV 解析器(逐步)教程,圖 4:在 Visual Studio 中從工具功能表訪問 NuGet 套件管理器控制台

從工具選單中在 Visual Studio 內訪問 NuGet Package Manager Console

套件管理器主控台將出現在螢幕底部。 只需輸入以下命令,然後按下 Enter,IronXL 就會安裝。

Install-Package IronXL.Excel

C# CSV 解析器(逐步)教程,第五步:通過命令行安裝 IronXL 庫

透過命令列安裝IronXL函式庫

3. 解析 CSV 檔案

手動解析 CSV 需要編寫大量精確的代碼來完成任務,但使用 IronXL 僅需幾行代碼即可。

僅使用傳統的C#程式碼來解析CSV格式的文件,您將需要使用大量繁瑣的程式碼。 以下是實現此功能的程式碼範例。

using FileHelpers;
using System;
namespace parse_csv
{
    [DelimitedRecord(",")]
    public class Record
    {
        public string Name;

        public string Age;
    }
    class Program
    {
        static void Main(string [] args)
        {
            var fileHelperEngine = new FileHelperEngine<Record>();
            var records = fileHelperEngine.ReadFile(@"C:\File\records.csv");

            foreach (var record in records)
            {
                Console.WriteLine(record.Name);
                Console.WriteLine(record.Age);
            }
        }
    }
}
using FileHelpers;
using System;
namespace parse_csv
{
    [DelimitedRecord(",")]
    public class Record
    {
        public string Name;

        public string Age;
    }
    class Program
    {
        static void Main(string [] args)
        {
            var fileHelperEngine = new FileHelperEngine<Record>();
            var records = fileHelperEngine.ReadFile(@"C:\File\records.csv");

            foreach (var record in records)
            {
                Console.WriteLine(record.Name);
                Console.WriteLine(record.Age);
            }
        }
    }
}
Imports FileHelpers
Imports System
Namespace parse_csv
	<DelimitedRecord(",")>
	Public Class Record
		Public Name As String

		Public Age As String
	End Class
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim fileHelperEngine As New FileHelperEngine(Of Record)()
			Dim records = fileHelperEngine.ReadFile("C:\File\records.csv")

			For Each record In records
				Console.WriteLine(record.Name)
				Console.WriteLine(record.Age)
			Next record
		End Sub
	End Class
End Namespace
VB   C#

但使用IronXL,只需幾行代碼即可實現這一點。

使用IronXL,您可以從XLSX、XLS、TSV等格式解析CSV檔案。 在本教程中,我們將探討以下轉換:

  1. 從 XLSX 文件解析 CSV 文件

  2. 從 XLS 文件解析 CSV 文件

  3. 從TSV檔案解析CSV檔案

3.1. 從 XLSX 文件解析 CSV 文件

打開 Microsoft Excel 並創建一個新的 XLSX 文件。用一些模擬數據填充其行和列。 下圖顯示了本教程中用於所有轉換的文件。

C# CSV 解析器 (逐步) 教程,第六步:範例 Excel 數據

範例 Excel 資料

檔案準備好後,請撰寫以下範例代碼並執行該程式。

using IronXL;

WorkBook wb = WorkBook.Load("test.xlsx");
wb.SaveAsCsv("Parsed CSV.csv");
using IronXL;

WorkBook wb = WorkBook.Load("test.xlsx");
wb.SaveAsCsv("Parsed CSV.csv");
Imports IronXL

Private wb As WorkBook = WorkBook.Load("test.xlsx")
wb.SaveAsCsv("Parsed CSV.csv")
VB   C#

執行完成後,將創建一個名為 Parsed CSV.csv 的新文件。 您可以在任何您喜好的編輯器或閱讀器中閱讀 CSV 檔案。下圖顯示了上述指令的輸出結果——我們生成的 CSV 數據。 在輸出檔案中,雙引號代表粗體值。

C# CSV解析器(步驟指南),圖7:在範例Excel工作簿上調用WorkBook.SaveAsCsv方法的結果

調用 WorkBook.SaveAsCsv 方法對樣本 Excel 工作簿的結果

3.2. 從 XLS 文件解析 CSV 文件

在此範例中,我們將看到如何將XLS檔案轉換為CSV格式。

首先,讓我們創建一個示例 XLS 文件,然後將其轉換為 CSV 格式。

C# CSV 解析器(逐步)教程,圖 8:範例 XLS 檔案

範例 XLS 文件

接下來,我們將執行下面的程式碼塊,將範例XLS文件轉換為CSV文件。

using IronXL;

WorkBook wb = WorkBook.Load("XLS.xls");
wb.SaveAsCsv("Example2.csv");
using IronXL;

WorkBook wb = WorkBook.Load("XLS.xls");
wb.SaveAsCsv("Example2.csv");
Imports IronXL

Private wb As WorkBook = WorkBook.Load("XLS.xls")
wb.SaveAsCsv("Example2.csv")
VB   C#

在上述程式碼執行完成後,您將會擁有一個新生成的CSV檔案。

C# CSV 解析器(逐步)教程,圖9:使用上面的代碼保存的結果 CSV 文件

使用上述程式碼儲存後的結果 CSV 檔案

3.3. 從 TSV 檔案解析 CSV 檔案

試算表應用程式經常使用TSV檔案(或稱為Tab-Separated Values檔案)在資料庫之間傳輸資料。 它將數據表儲存為以標籤分隔數據列,每條記錄在不同行的格式。

IronXL 提供 CSV 解析器,以從 TSV 格式解析 CSV 文件以便更好地管理數據。

讓我們從這個例子開始。

C# CSV 解析器(逐步)教程,圖 10:範例 TSV 試算表

一個範例 TSV 試算表

using IronXL;

WorkBook wb = WorkBook.Load("TSV.tsv");
wb.SaveAsCsv("Example3.csv");
using IronXL;

WorkBook wb = WorkBook.Load("TSV.tsv");
wb.SaveAsCsv("Example3.csv");
Imports IronXL

Private wb As WorkBook = WorkBook.Load("TSV.tsv")
wb.SaveAsCsv("Example3.csv")
VB   C#

以下是以 CSV 格式輸出的內容。

C# CSV解析器(逐步)教程,圖11:輸出CSV檔案

輸出 CSV 檔案

4. 結論

本教程使用IronXL在C#中將不同的文件格式解析為CSV。

此外,IronXL 庫還提供以下功能:

< 上一頁
如何在 C# 中創建 CSV 文件(逐步教程)
下一個 >
如何使用IronXL將數據匯出至Blazor中的Excel

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

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