IRONSOFTWAREHOME
與其他組件的比較

IronXL 與 CsvHelper 的比較

Curtis Chau
Curtis Chau
Updated: 2026年7月19日

處理CSV文件可能是一項具有挑戰性的任務。 如今,有許多程式庫可以幫助開發者完成這項任務,而不需要安裝Microsoft Excel。

在本文中,我們將討論並比較如何在C# .NET技術中程式化處理Microsoft Excel文件,無論是CSV格式還是標準的XLSX格式,使用兩個最受歡迎的程式庫:IronXL和CsvHelper。

首先讓我們來看看這兩個程式庫所提供的功能。

IronXL 程式庫

IronXL是一個.NET程式庫,用於輕鬆地使用C#讀取和編輯Microsoft Excel文件。 IronXL.Excel是一個獨立的.NET軟體程式庫,用於讀取多種電子錶格格式。 它不需要安裝Microsoft Excel,也不依賴於Interop。它在處理CSV文件時非常順暢。

IronXL是一個直觀的C# API,允許您在.NET中讀取、編輯和建立Excel試算表文件,性能極其快速。 IronXL完全支援.NET Core, .NET Framework, Xamarin, Mobile, Linux, macOS和Azure。

IronXL是C#中領先的.NET Core和.NET框架Excel電子錶格程式庫。

IronXL 功能集

  • 載入、讀取和編輯資料——從XLS/XLSX/CSV/TSV
  • 保存和匯出——到XLS/XLSX/CSV/TSV/JSON
  • 範圍——易於使用的WorkSheet["A1:B10"]語法。 直觀地組合和建立範圍。
  • 排序——排序範圍、列和行。
  • 樣式——單元格視覺樣式、字體、大小、背景圖案、邊框、對齊方式和數字格式。

CsvHelper

一個用於讀取和寫入CSV文件的.NET程式庫。 性能極其快速、靈活且易於使用。 支持自定義類物件的讀取和寫入。 所有範例程式碼都在CsvHelper文件中提供。

CsvHelper功能

  • 快速:動態編譯類實現極快速的性能
  • 靈活:寫入時保守,讀取時自由
  • 易於使用:讀取和寫入如同WriteRecords(records)一樣簡單
  • 配置高度靈活
  • Linux模式
  • 低記憶體使用

1. 建立控制檯應用程式

請按以下步驟建立控制檯應用程式:

  • 啟動Visual Studio 2022 IDE。
  • 點擊"建立新項目"。
  • 在"建立新項目"頁面中,選擇語言下拉列表的C#,從平台列表中選擇Windows,從"項目型別"列表中選擇控制台
  • 從顯示的項目模板中選擇控制台應用程式 (.NET Framework)

建立項目 - 控制台應用程式

  • 點擊下一步
  • 附加資訊螢幕中,指定您想使用的Framework版本。 在此範例中,我們將使用**.NET Framework 4.8**。

建立項目 - .NET Framework

  • 點擊建立以完成過程。

項目現在已建立,我們幾乎準備好測試這些程式庫。 然而,我們仍然需要將它們安裝並整合到我們的項目中。 首先讓我們安裝IronXL。

2. IronXL C# 程式庫安装

您可以使用以下方法下载并安装IronXL程式庫:

  1. 使用Visual Studio與NuGet包
  2. 直接下載NuGet包
  3. 使用DLL手動安裝

讓我們更詳細地看看每一個。

2.1. 使用Visual Studio和NuGet包

Visual Studio提供NuGet包管理器用於在您的項目中安裝NuGet包。 您可以通過項目選單存取它,或者通過右鍵點擊您在解決方案資源管理器中的項目。

選擇-管理-NuGet-包

  • 現在,從瀏覽標籤->搜尋IronXL.Excel->安裝

搜尋IronXL

  • 完成了。

2.2. 直接下载NuGet包

您可以通過直接存取NuGet網站並下載包來完成此操作。 步驟如下:

2.3. 手動使用DLL安裝

另一種下載並安裝IronXL C# 程式庫的方法是通過開發者命令提示符來安裝IronXL NuGet包

  • 打開開發者命令提示符——通常位於Visual Studio文件夾中。
  • 鍵入以下命令:PM> Install-Package IronXL.Excel
  • 按下Enter
  • 這將下載並安裝包
  • 重新載入您的Visual Studio項目並開始使用

2.4. 新增必要的using指令

  1. 在解決方案資源管理器中,右鍵點擊Program.cs文件,然後點擊查看程式碼。
  2. 將以下using指令新增到程式碼文件的頂部:
using IronXL;

全部搞定了! IronXL已下载安装完毕,准备就绪。 然而,在此之前,我們應該安裝CsvHelper。

3. 安裝CsvHelper

3.1. 使用NuGet包管理器控制台

要下載並安裝CsvHelper C#程式庫,請使用以下步驟通過開發者命令提示符安裝NuGet包

  • 打開開發者命令提示符——通常位於Visual Studio文件夾中。
  • 鍵入以下命令:PM> Install-Package CsvHelper -Version 27.2.1
  • 按下Enter
  • 這將下載並安裝包
  • 重新載入您的Visual Studio項目並開始使用

3.2. 直接下載

從NuGet網站下載:https://www.nuget.org/packages/CsvHelper

4. 使用IronXL處理CSV文件

***逗號分隔值(CSV)***文件是一種使用逗號分隔值的定界文字文件。 文件的每一行是一條資料記錄。 若要操縱這些文件以進行計算可能是一項具有挑戰性的任務,而IronXL提供了一個非常好且簡易的選擇來完成這一任務,而不需要Microsoft Excel。 首先讓我們將CSV文件轉換為普通的Excel文件。

4.1. 將CSV文件轉換為Excel格式

這個過程相當簡單和容易。 通常只需一行程式碼即可完成。

CSV 到 Excel 格式:

// Load the CSV file and convert it to an Excel format
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
// Access the default worksheet
WorkSheet ws = workbook.DefaultWorkSheet;

// Save the workbook as an Excel file
workbook.SaveAs("CsvToExcelConversion.xlsx");

4.2. 使用IronXL讀取和操作轉換後的CSV文件

IronXL的WorkBook類表示一個Excel表。 要使用C#打開Excel文件,我們使用WorkBook.Load並指定Excel文件(.xlsx)的路徑。 以下一行程式碼用於打開文件進行讀取:

// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets/sample.xlsx");

每個WorkSheet物件。 這些代表Excel文件中的工作表。 如果工作簿包含工作表,請按如下獲取它們的名稱:

// Open the sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");

讀取單元格值的程式碼:

// Read from ranges of cells elegantly
foreach (var cell in worksheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

在載入並讀取工作簿和工作表後,可以使用以下程式碼樣本對公式進行更改或將它們應用於特定的單元格。 程式碼如下:

// Set formulas in specific cells
worksheet["A1"].Formula = "SUM(B8:C12)";
worksheet["B8"].Formula = "=C9/C11";
worksheet["G30"].Formula = "MAX(C3:C7)";

// Force recalculate all formula values in all sheets
workbook.EvaluateAll();

4.3. 將Excel文件重新保存為CSV文件

用IronXL編寫CSV文件是一個簡單的過程。 以下程式碼只需使用SaveAsCsv方法將Excel文件保存為CSV格式。

// Load the Excel Workbook
WorkBook wb = WorkBook.Load("Normal_Excel_File.xlsx");

// Save the workbook as a CSV file
wb.SaveAsCsv("SaveAsCSV.csv", ",");
// This will save as "SaveAsCSV.Sheet1.csv"

5. 使用CsvHelper處理CSV文件

讀取CSV文件是一項看似比實際複雜得多的任務。 CsvHelper程式庫使您能夠輕鬆編寫型別安全、快速且靈活的程式碼。

5.1. 使用CsvHelper讀取CSV文件

這是範例CSV文件,它有三個文字列和一個數字列。

FirstName,LastName,Age,IsActive
Ali,Talal,30,Yes
Affan,Ahmad,31,No
Saad,Bhatti,31,Yes
Text

我們將把每行映射到Person型別的物件中。

// Define the Person class to map CSV records
public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int? Age { get; set; }
    public string IsActive { get; set; }
}

我們讀取CSV文件的程式碼如下。

// Define the path to the CSV file
var fileName = @"<path to our CSV file>";

// Configure CsvHelper
var configuration = new CsvConfiguration(CultureInfo.InvariantCulture)
{
    Encoding = Encoding.UTF8,
    Delimiter = ","
};

// Read CSV file
using (var fs = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.Read))
{
    using (var textReader = new StreamReader(fs, Encoding.UTF8))
    using (var csv = new CsvReader(textReader, configuration))
    {
        var data = csv.GetRecords<Person>();
        
        // Iterate over each person record
        foreach (var person in data)
        {
            // Process each Person object
        }
    }
}

IEnumerable<Person>。 CsvHelper會自動將每列映射到具有相同名稱的屬性。 例如,Person.FirstName。 然後我們可以遍歷data並存取每行中的值。

5.2. 在CSV文件中將資料從一種型別轉換為另一種型別

CSV文件通常包含文字資料。 例如,年齡列是一個整數值,而CSV文件僅包含文字。 CsvHelper可以將資料從字串轉換為標準的.NET型別(Boolean, Int32, Int64, Enum)。 在我們的例子中,我們有一個True/False,並且包含非標準值。 可以通過建立自定義轉換器進行轉換。 程式碼的樣式如下所示:

// Custom Boolean Converter for CsvHelper
public class CustomBooleanConverter : DefaultTypeConverter
{
    public override object ConvertFromString(string text, IReaderRow row, MemberMapData memberMapData)
    {
        // Convert "Yes" to true and anything else to false
        return text.Equals("Yes", StringComparison.OrdinalIgnoreCase);
    }
}

儘管Yes/No。 在這裡,我們需要子類化ConvertFromString方法。

6. 授權

IronXL是公開商業的C# Excel庫。 它是免費的開發且可以隨時用於商業部署。 授權可用於單專案使用、單開發者、代理商及全球公司,以及SaaS與OEM再分發。 所有授權包括30天退費保證、為期一年的產品支援及更新、開發/測試/生產環境的有效性,以及永久授權(一鍵購買)。 Lite套件價格從$999開始。

CsvHelper — 讀寫CSV文件對商業用途完全免費。

7. 總結與結論

摘要

IronXL是一個完整的庫,提供您所需的一切來操作Excel文件。它易於使用,並且為您提供將多種格式轉換為XLSX,以及從XLSX轉換為其他格式(例如CSV)的功能。這種格式互換為使用者提供了以簡單方式處理各種文件格式的靈活性。

另一方面,CsvHelper專為處理CSV文件格式而設計,即它只能處理CSV文件。 所有程式碼樣本均可在CsvHelper文件文件中找到。 文件為您提供了如何在您的項目中使用CsvHelper的指南。

結論

IronXL比CsvHelper具有明顯的優勢,因為它支持使用者處理多種格式。 此外,您可以根據喜好應用公式和樣式,而CsvHelper僅允許有限選項的CSV文件讀寫。 另外,您無法向現有的CSV文件新增新記錄,因為它只是覆蓋先前的條目。

請注意: CsvHelper是其各自所有者的註冊商標。 本網站與CsvHelper沒有任何關聯、不受推廣或贊助。 所有產品名稱、標誌和品牌均為其各自所有者的財產。 比較僅供資訊參考,反映了撰寫時公開可用的資訊。
Curtis Chau
技術作家

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

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預約您的免費即時演示
Booking Badge

全球數百萬工程師的信賴

Iron Software的客戶標誌
獲得無義務諮詢
填寫以下表格或電郵sales@ironsoftware.com
您的資料將始終保密。
全球數百萬工程師的信賴
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立