跳過到頁腳內容
使用 IRONXL

C# CSV 解析器(分步)教程

您是否曾經難以將CSV文件解析並將其轉換為XLSX或將XLSX文件轉換為CSV文件以執行.NET中的某些重要任務,但卻不知如何做到這一點而不需要寫大量代碼?

許多CSV庫存在於解決這個問題。 然而,在這篇博客中,我們將使用IronXL C# Excel庫僅用兩行代碼來執行這些任務。

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

1. 在Visual Studio中創建新項目

打開Visual Studio編輯器。

前往Visual Studio的文件菜單。 選擇“新項目”,然後選擇控制台應用程序。

輸入項目名稱並選擇項目位置。 然後,單擊創建按鈕創建項目。 選擇所需的.NET Framework,如下圖所示:

C# CSV Parser (步步指導) 教程,圖1:創建一個新的C#.NET控制台應用程序 創建一個新的C#.NET控制台應用程序 program.cs文件將打開,以便您可以輸入邏輯並創建/運行應用程序。 IronXL庫可以通過多種不同的方式下載和安裝。

今天,我們將專注於其中的兩種方式:

2. 安裝 IronXL C# 庫

Visual Studio中的NuGet包管理器UI可以直接將包安裝到項目中。 C# CSV Parser (步步指導) 教程,圖2:使用Visual Studio NuGet包管理器GUI安裝IronXL 使用Visual Studio NuGet包管理器GUI安裝IronXL

  • 使用 Visual Studio NuGet Package Manager
  • 使用 Visual Studio 命令行

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

包管理器UI提供了一個瀏覽功能,顯示在NuGet網站上提供的包庫列表。輸入“IronXL”關鍵字,如下圖所示,以找到IronXL包。 以下截圖顯示如何打開它。

C# CSV Parser (步步指導) 教程,圖3:在NuGet包管理器中搜索IronXL庫以找到它 在NuGet包管理器中搜索IronXL庫

選擇IronXL.Excel包並單擊安裝按鈕將其添加到項目中。

在Visual Studio菜單中,前往工具 > NuGet包管理器 > 單擊包管理器控制台

C# CSV Parser (步步指導) 教程,圖4:從工具菜單訪問Visual Studio中的NuGet包管理器控制台 從工具菜單訪問Visual Studio中的NuGet包管理器控制台

2.2. 使用 Visual Studio 命令行

包管理器控制台將顯示在屏幕底部。

只需輸入以下命令,然後按Enter,IronXL將被安裝。

C# CSV Parser (步步指導) 教程,圖5:通過命令行安裝IronXL庫 通過命令行安裝IronXL庫 ## 3. 解析CSV文件

Install-Package IronXL.Excel

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

僅使用常規C#代碼解析CSV格式的文件,您將需要使用大量冗長的代碼。

這是實現此的代碼示例。

但使用IronXL,這只需要幾行代碼即可實現。 使用IronXL,您可以從XLSX、XLS、TSV等格式中解析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)
        {
            // Create a FileHelperEngine for the Record class
            var fileHelperEngine = new FileHelperEngine<Record>();
            // Read records from the CSV file into an array
            var records = fileHelperEngine.ReadFile(@"C:\File\records.csv");

            // Print each record's Name and Age
            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)
        {
            // Create a FileHelperEngine for the Record class
            var fileHelperEngine = new FileHelperEngine<Record>();
            // Read records from the CSV file into an array
            var records = fileHelperEngine.ReadFile(@"C:\File\records.csv");

            // Print each record's Name and Age
            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)
			' Create a FileHelperEngine for the Record class
			Dim fileHelperEngine As New FileHelperEngine(Of Record)()
			' Read records from the CSV file into an array
			Dim records = fileHelperEngine.ReadFile("C:\File\records.csv")

			' Print each record's Name and Age
			For Each record In records
				Console.WriteLine(record.Name)
				Console.WriteLine(record.Age)
			Next record
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

在本教程中,我們將探討以下轉換:

  1. 從XLSX文件解析CSV文件 2. 從XLS文件解析CSV文件

  2. 從TSV文件解析CSV文件

3.1. 從XLSX文件中解析CSV文件

打開Microsoft Excel並創建一個新的XLSX文件。用一些模擬數據填充其行和列。

下圖顯示了本教程中用於所有轉換的文件。

C# CSV Parser (步步指導) 教程,圖6:樣本Excel數據 樣本Excel數據 一旦您準備好了您的文件,撰寫以下示例代碼並執行程序。

執行完成後,將會創建一個名為Parsed CSV.csv的新文件。

可以使用您喜歡的任何編輯器或閱讀器讀取CSV文件。下圖顯示了上述命令輸出的結果——我們生成的CSV數據。

using IronXL;

class Program
{
    static void Main()
    {
        // Load the XLSX file into a WorkBook object
        WorkBook wb = WorkBook.Load("test.xlsx");
        // Save the WorkBook as a CSV file
        wb.SaveAsCsv("Parsed CSV.csv");
    }
}
using IronXL;

class Program
{
    static void Main()
    {
        // Load the XLSX file into a WorkBook object
        WorkBook wb = WorkBook.Load("test.xlsx");
        // Save the WorkBook as a CSV file
        wb.SaveAsCsv("Parsed CSV.csv");
    }
}
Imports IronXL

Friend Class Program
	Shared Sub Main()
		' Load the XLSX file into a WorkBook object
		Dim wb As WorkBook = WorkBook.Load("test.xlsx")
		' Save the WorkBook as a CSV file
		wb.SaveAsCsv("Parsed CSV.csv")
	End Sub
End Class
$vbLabelText   $csharpLabel

在輸出文件中,雙引號代表粗體值。 C# CSV Parser (步步指導) 教程,圖7:在樣本Excel工作簿上調用WorkBook.SaveAsCsv方法的結果 在樣本Excel工作簿上調用WorkBook.SaveAsCsv方法的結果 ### 3.2. 從XLS文件中解析CSV文件

在此示例中,我們將看到如何將XLS文件轉換為CSV格式。

首先,讓我們創建一個我們可以轉換為CSV格式的XLS示例文件。

C# CSV Parser (步步指導) 教程,圖8:一個樣本XLS文件 一個樣本XLS文件

接下來,我們將執行以下代碼塊,將樣本XLS文件轉換為CSV文件。

執行上述代碼後,您將擁有一個新生成的CSV文件。

C# CSV Parser (步步指導) 教程,圖9:使用上面代碼保存後的結果CSV文件 使用上面代碼保存後的結果CSV文件

using IronXL;

class Program
{
    static void Main()
    {
        // Load the XLS file into a WorkBook object
        WorkBook wb = WorkBook.Load("XLS.xls");
        // Save the WorkBook as a CSV file
        wb.SaveAsCsv("Example2.csv");
    }
}
using IronXL;

class Program
{
    static void Main()
    {
        // Load the XLS file into a WorkBook object
        WorkBook wb = WorkBook.Load("XLS.xls");
        // Save the WorkBook as a CSV file
        wb.SaveAsCsv("Example2.csv");
    }
}
Imports IronXL

Friend Class Program
	Shared Sub Main()
		' Load the XLS file into a WorkBook object
		Dim wb As WorkBook = WorkBook.Load("XLS.xls")
		' Save the WorkBook as a CSV file
		wb.SaveAsCsv("Example2.csv")
	End Sub
End Class
$vbLabelText   $csharpLabel

3.3. 從TSV文件中解析CSV文件

電子表格應用程序經常使用TSV文件或制表符分隔值文件來在數據庫之間傳輸數據。

3.打開Microsoft Excel並創建一個新的XLSX文件。用一些模擬數據填充其行和列。

IronXL提供了CSV解析器來從TSV格式解析CSV文件,以便更好地管理數據。 讓我們開始示例。

C# CSV Parser (步步指導) 教程,圖10:一個樣本TSV電子表格 一個樣本TSV電子表格

下面是CSV格式的輸出。

C# CSV Parser (步步指導) 教程,圖11:輸出CSV文件 輸出CSV文件

using IronXL;

class Program
{
    static void Main()
    {
        // Load the TSV file into a WorkBook object
        WorkBook wb = WorkBook.Load("TSV.tsv");
        // Save the WorkBook as a CSV file
        wb.SaveAsCsv("Example3.csv");
    }
}
using IronXL;

class Program
{
    static void Main()
    {
        // Load the TSV file into a WorkBook object
        WorkBook wb = WorkBook.Load("TSV.tsv");
        // Save the WorkBook as a CSV file
        wb.SaveAsCsv("Example3.csv");
    }
}
Imports IronXL

Friend Class Program
	Shared Sub Main()
		' Load the TSV file into a WorkBook object
		Dim wb As WorkBook = WorkBook.Load("TSV.tsv")
		' Save the WorkBook as a CSV file
		wb.SaveAsCsv("Example3.csv")
	End Sub
End Class
$vbLabelText   $csharpLabel

本教程使用IronXL在C#中解析多種文件格式為CSV。 此外,IronXL庫還提供以下功能:

4. 結論

Check out IronXL's features, Code Examples and documentation content for more information about how IronXL works. Download IronXL and 購買完整的Iron Suite即可以兩個IronXL庫許可的價格獲得五個Iron Software庫的許可! 感謝您的閱讀!

Purchase the complete Iron Suite to retrieve licenses for all five Iron Software libraries for the price of two IronXL library licenses!

Thanks for reading!

常見問題解答

我怎樣才能在 C# 中不使用 Interop 解析 CSV 文件?

IronXL 允許在 C# 中解析 CSV 文件而不使用 Interop。您可以將 CSV 文件加載到 WorkBook 對象中,直接進行操作,通過少量代碼將其轉換為其他格式,如 XLSX 或 XLS。

在 Visual Studio 中安裝 IronXL 庫需要哪些步驟?

要在 Visual Studio 中安裝 IronXL 庫,打開 NuGet 包管理器用戶界面,搜索 "IronXL" 並安裝它。或者,您可以使用 Visual Studio 命令行,在包管理器控制台中運行命令 Install-Package IronXL.Excel

如何在 C# 中將 CSV 文件轉換為 Excel 格式?

使用 IronXL,您可以將 CSV 文件轉換為 XLSX 或 XLS 等 Excel 格式,方法是將 CSV 加載到 WorkBook 對象中,並使用 SaveAsXlsx 方法保存為所需格式。

是否可以在 C# 中解析 TSV 文件並將其轉換為 CSV?

可以,IronXL 允許解析 TSV 文件。將 TSV 文件加載到 WorkBook 對象中,並使用 SaveAsCsv 方法將其轉換為 CSV 文件。

C# 的 Excel 庫提供哪些功能來進行數據操作?

IronXL 提供了數據操作、圖表管理、單元格格式化及 Excel 加密的兼容性支持。它支持凍結窗口、公式和條件格式等操作。

如何在 C# 中編程管理 Excel 電子表格格式?

IronXL 支持不同的電子表格格式管理,如 XLSX、XLS 和 CSV。它提供在這些格式間進行轉換的方法,以及在 .NET 應用程序中高效處理數據的功能。

在購買之前,我可以嘗試一個 C# 的 Excel 庫嗎?

可以,IronXL 提供可從 NuGet 網站下載的免費 30 天試用版。這讓您可以測試其功能並確保它滿足您的需求再購買。

IronXL 在解析和轉換 CSV 文件方面提供了哪些好處?

IronXL 以最少的代碼簡化了解析和轉換 CSV 文件的過程。它確保了高效的數據處理,並提供豐富的功能來增強 C# 應用程序中的 Excel 文件操作。

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