IRONSOFTWAREHOME
与其他组件比较

IronXL 和 CsvHelper 的比较

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

处理 CSV 文件是一项具有挑战性的任务。 目前有许多库可以帮助开发人员完成这项任务,而无需安装 Microsoft Excel。

在本文中,我们将讨论和比较如何使用 IronXL 和 CsvHelper 这两个最流行的库,在 C# .NET 技术中以编程方式处理 CSV 格式或标准 XLSX 格式的 Microsoft Excel 文档。

让我们先来看看这两个库都有哪些功能。

IronXL库

IronXL for .NET 是一个.NET 库,便于使用 C# 阅读和编辑 Microsoft Excel 文档。 IronXL.Excel是一个独立的.NET软件库,用于读取各种电子表格格式。 它不需要安装 Microsoft Excel,也不依赖 Interop。它能非常流畅地处理 CSV 文件。

IronXL是一个直观的C# API,可以让您在.NET中读取、编辑和创建Excel电子表格文件,性能极快。 IronXL 完全支持 .NET Core、.NET Framework、Xamarin、移动平台、Linux、macOS 和 Azure。

IronXL是C#中领先的.NET核心和.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,在"项目类型"列表中选择 控制台
  • 从显示的项目模板中选择 Console App (.NET Framework)

创建项目 - 控制台应用程序

  • 单击 下一页
  • 附加信息屏幕中,指定您希望使用的框架版本。 在本例中,我们将使用**.NET Framework 4.8**。

创建项目 - .NET Framework

  • 单击创建完成流程。

该项目现已创建,我们即将对库进行测试。 不过,我们仍需要将它们安装并集成到我们的项目中。 让我们先安装IronXL。

2. IronXL C# 库安装

您可以使用以下方法下载和安装IronXL库:

1.使用 Visual Studio 和 NuGet 软件包 2. 直接下载 NuGet 包 3.使用 DLL 手动安装

让我们仔细看一下每个方法。

2.1. 使用包含NuGet包的Visual Studio

Visual Studio 提供 NuGet 包管理器以便在您的项目中安装 NuGet 包。 您可以通过项目菜单或通过右键点击解决方案资源管理器中的项目访问它。

选择-管理-NuGet-包

  • 现在,从浏览选项卡 -> 搜索 IronXL.Excel -> 安装

搜索 IronXL

  • 我们完成了。

2.2. 直接下载 NuGet 包

可以通过直接访问 NuGet 站点并下载包来完成。 步骤如下

2.3. 使用DLL手动安装

下载和安装IronXL C#库的另一种方式是使用以下步骤,通过开发人员命令提示符安装IronXL NuGet包

  • 打开 Developer 命令提示符--通常可在 Visual Studio 文件夹中找到。
  • 输入以下命令:PM> Install-Package IronXL.Excel
  • 按回车键
  • 这将下载并安装软件包
  • 重新加载 Visual Studio 项目并开始使用

2.4. 添加必要的Using指令

1.在解决方案资源管理器中,右键单击 Program.cs 文件,然后单击查看代码。 2. 将以下using指令添加到代码文件的顶部:

using IronXL;

全部完成了! IronXL已下载、安装并准备使用。 不过,在此之前,我们应该先安装 CsvHelper。

3.CsvHelper 安装

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

要下载和安装 CsvHelper C# 库,请使用以下步骤通过开发人员命令提示符安装 NuGet 软件包

  • 打开 Developer 命令提示符--通常可在 Visual Studio 文件夹中找到。
  • 输入以下命令:PM> Install-Package CsvHelper -Version 27.2.1
  • 按回车键
  • 这将下载并安装软件包
  • 重新加载 Visual Studio 项目并开始使用

3.2.直接下载

从 NuGet 网站下载:https://www.nuget.org/packages/CsvHelper

4.使用 IronXL 处理 CSV 文件

逗号分隔值 (CSV) 文件是一种使用逗号分隔值的分隔文本文件。 文件的每一行都是一条数据记录。 要操作这些文件进行计算是一项具有挑战性的任务,IronXL.Excel 提供了一个相当不错且简单的选择,无需 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 文件

using 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 类型(布尔、Int32、Int64、枚举)。 在我们的情况中,我们有一个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 是一个完整的库,可提供处理 Excel 文件所需的一切功能。它易于使用,能将各种格式转换为 XLSX,以及将 XLSX 转换为 CSV 等其他格式。这种相互转换为用户提供了灵活性,可以轻松处理各种文件格式。

另一方面,CsvHelper 是专为处理 CSV 文件格式而设计的,这意味着它只能处理 CSV 文件。 所有代码示例均可在 CsvHelper 文档文件中找到。 文档为您提供了如何在项目中使用 CsvHelper 的指南。

结论

IronXL 与 CsvHelper 相比优势明显,因为它支持用户使用多种格式。 此外,您还可以根据自己的选择应用公式和样式,而 CsvHelper 只允许读写 CSV 文件,且选项有限。 此外,您无法将新记录追加到现有的 CSV 文件中,因为它只会覆盖以前的条目。

请注意: CsvHelper 是其各自所有者的注册商标。 本网站与 CsvHelper 无关,也未得到 CsvHelper 的支持或赞助。 所有产品名称、徽标和品牌均为各自所有者的财产。 比较仅供参考,反映撰写时公开可用的信息。
Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

相关文章

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 天试用密钥
无需信用卡或创建账户