跳至页脚内容
使用 IRONXL

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

IronXL只需两行代码即可在 C# 中解析 CSV 文件并将其转换为 Excel 格式。 本教程演示如何使用IronXL库的简单 API 将 XLSX、XLS 和 TSV 文件转换为 CSV 格式,从而无需复杂的手动解析代码。 该库在内部处理文件格式转换的所有复杂细节,因此非常适合需要快速、可靠的 CSV 解析而无需编写大量代码的开发人员。

你是否曾经遇到过这样的情况:在.NET中执行重要任务时,需要解析 CSV 文件并将其转换为 XLSX 文件,或者将 XLSX 文件转换为 CSV 文件,但却苦于找不到无需编写大量代码就能实现的方法?

有很多CSV库可以解决这个问题。 不过,本教程将使用IronXL C# Excel 库,仅需两行代码即可完成这些任务。 与需要手动解析分隔符和处理特殊情况的传统方法不同, IronXL提供了一个强大且经过测试的解决方案,可在包括 Windows、Linux 和 macOS 在内的不同平台上运行

首先,你只需要 Visual Studio 即可。 请按照以下说明进行详细安装步骤。 本教程专为具备基本 C# 知识、希望在不使用互操作依赖项的情况下处理 Excel 文件的开发人员而设计。

如何在 Visual Studio 中创建新项目?

打开 Visual Studio 编辑器。

在 Visual Studio 中,转到"文件"菜单。 选择"新建项目",然后选择"控制台应用程序"。 这样就创建了一个简单的项目结构,非常适合学习如何创建和操作 Excel 文件

输入项目名称并选择项目地点。 然后点击"创建"按钮创建项目。 选择所需的 .NET Framework,如下图所示:

Visual Studio 新建项目配置对话框,显示项目名称为图 1:在 Visual Studio 中使用.NET Framework 4.7.2 配置新的 C# 控制台应用程序项目

将打开 program.cs 文件,以便您可以输入逻辑并创建/运行应用程序。 在这里,我们将使用 IronXL 简单易用的 API 添加我们的 CSV 解析代码。

如何安装IronXL C# 库?

IronXL 库可以通过多种不同的方式下载和安装。 今天,我们将重点介绍职业发展环境中常用的两种方法:

  • 使用 Visual Studio NuGet 包管理器
  • 使用 Visual Studio 命令行

两种方法同样有效,你的选择取决于你更喜欢图形界面还是命令行工具。 有关不同环境下的详细安装指南,请参阅官方文档

我应该使用 Visual Studio NuGet包管理器吗?

NuGet包管理器UI可用于在Visual Studio中将软件包直接安装到项目中。 对于喜欢可视化界面并希望在安装前查看软件包详细信息的开发人员来说,这种方法特别有用。 下面的截图显示了如何打开它。

Visual Studio interface showing the Tools menu expanded with NuGet Package Manager option highlighted, and a secondary menu showing 'Manage NuGet Packages for Solution' selected Access the NuGet Package Manager in Visual Studio by navigating to Tools > NuGet Package Manager > Manage NuGet Packages for Solution

程序包管理器用户界面提供了一个浏览功能,用于显示NuGet网站上可用的程序包库列表。输入"IronXL"(如下图所示)即可找到IronXL程序包。 您还可以探索IronXL提供的相关 Excel 处理功能

Visual Studio 的NuGet包管理器界面显示了IronXl.Excel 包的搜索结果,其中已选择版本 2022.9.9454 安装到名为"Create PDF"的 C# 项目中。 Visual Studio 中的NuGet包管理器显示了IronXl.Excel 库,该库使开发人员能够在.NET应用程序中读取、生成和编辑 Excel 文件。 该软件包显示下载量已达 25 万次,版本为 2022.9.9454,可供安装。

选择 IronXl.Excel 包,然后单击"安装"按钮将其添加到项目中。 安装过程将自动处理所有依赖项,并配置您的项目以进行Excel 文件操作

何时应该使用 Visual Studio 命令行?

在 Visual Studio 菜单中,转到"工具" > "NuGet 包管理器" >单击"包管理器控制台" 。 对于熟悉命令行界面或需要在构建脚本中自动化安装过程的开发人员来说,这种方法是更优的选择。

Visual Studio 界面,显示在 Visual Studio 中打开NuGet包管理器控制台以安装 CSV 解析库

程序包管理器控制台将显示在屏幕底部。 输入以下命令并按回车键。 将安装IronXL 。 当您需要安装特定版本或使用AzureAWS 环境的部署脚本时,此方法特别有用。

Install-Package IronXL.Excel

Visual Studio 中的包管理器控制台显示IronXl.Excel NuGet包的安装过程,并显示下载成功的确认信息包管理器控制台显示IronXl.Excel 版本 2022.11.10251 已成功安装,并显示了包还原过程以及从NuGet存储库下载的确认信息。

如何使用IronXL解析 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)
        {
            // Create a FileHelperEngine for the Record class
            var fileHelperEngine = new FileHelperEngine<Record>();

            // Read records from the CSV file into an array
            // Note: This requires proper error handling for production use
            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
            // Note: This requires proper error handling for production use
            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);
            }
        }
    }
}
$vbLabelText   $csharpLabel

但使用IronXL,只需几行代码即可实现此功能,它还内置了错误处理功能,并支持各种文件格式。

使用IronXL,您可以解析来自 XLSX、XLS、TSV 等格式的 CSV 文件。 该库还支持在 ASP.NET 应用程序和Blazor应用程序ASP.NET读取 Excel 文件。 在本教程中,我们将探讨以下几种转换:

  1. 从 XLSX 文件解析 CSV 文件
  2. 从 XLS 文件解析 CSV 文件
  3. 从 TSV 文件解析 CSV 文件

如何将XLSX文件转换为CSV文件?

打开 Microsoft Excel 并创建一个新的 XLSX 文件。在文件的行和列中填充一些模拟数据。 对于生产场景,您可能需要使用IronXL以编程方式创建 Excel 文件。 下图显示了本教程中所有转换所使用的文件。

Excel 电子表格,显示一个简单的库存表,包含图 6:示例 Excel 数据,显示一个基本的库存结构,该结构将用于演示 C# 中的 CSV 解析

文件准备就绪后,编写以下示例代码并执行程序。 IronXL在内部处理所有复杂的解析,包括正确处理特殊字符和数据类型:

using IronXL;

class Program
{
    static void Main()
    {
        // Load the XLSX file into a WorkBook object
        // The Load method automatically detects the file format
        WorkBook wb = WorkBook.Load("test.xlsx");

        // Save the WorkBook as a CSV file
        // This method handles all formatting and conversion automatically
        wb.SaveAsCsv("Parsed CSV.csv");

        // Optional: Save with custom delimiter
        // wb.SaveAsCsv("Parsed CSV.csv", delimiter: ";");
    }
}
using IronXL;

class Program
{
    static void Main()
    {
        // Load the XLSX file into a WorkBook object
        // The Load method automatically detects the file format
        WorkBook wb = WorkBook.Load("test.xlsx");

        // Save the WorkBook as a CSV file
        // This method handles all formatting and conversion automatically
        wb.SaveAsCsv("Parsed CSV.csv");

        // Optional: Save with custom delimiter
        // wb.SaveAsCsv("Parsed CSV.csv", delimiter: ";");
    }
}
$vbLabelText   $csharpLabel

执行完成后,将创建一个名为Parsed CSV.csv的新文件。 您可以使用任何您喜欢的编辑器或阅读器打开 CSV 文件。您还可以将 CSV 数据重新导入 Excel进行进一步处理。 下图显示了上述命令的输出结果——我们生成的 CSV 数据。 在输出文件中,双引号表示粗体值。

SaveAsCsv方法生成的CSV输出,以逗号分隔格式显示转换后的Excel数据。

如何将 XLS 文件转换为 CSV 文件?

在这个例子中,我们将看到如何将 XLS 文件转换为 CSV 格式。 该过程与 XLSX 转换相同,这体现了 IronXL 在处理不同 Excel 文件格式方面的多功能性。

首先,我们创建一个示例 XLS 文件,然后将其转换为 CSV 格式。 请注意,XLS 是较旧的 Excel 格式,但IronXL可以无缝地处理它以及现代格式:

Microsoft Excel 电子表格,显示物品库存,包含图 8:示例 Excel 文件,演示了带有自动计算的库存数据结构,可以使用 C# CSV 库进行解析

接下来,我们将执行以下代码块,将IronXLXLS 文件转换为 CSV 文件。IronXL 在转换过程中会保持数据完整性,包括公式和计算结果

using IronXL;

class Program
{
    static void Main()
    {
        // Load the XLS file into a WorkBook object
        // IronXL automatically handles the older XLS format
        WorkBook wb = WorkBook.Load("XLS.xls");

        // Save the WorkBook as a CSV file
        // All formulas are evaluated and results are exported
        wb.SaveAsCsv("Example2.csv");

        // Optional: Export specific worksheet
        // WorkSheet ws = wb.GetWorkSheet("Sheet1");
        // ws.SaveAsCsv("Example2.csv");
    }
}
using IronXL;

class Program
{
    static void Main()
    {
        // Load the XLS file into a WorkBook object
        // IronXL automatically handles the older XLS format
        WorkBook wb = WorkBook.Load("XLS.xls");

        // Save the WorkBook as a CSV file
        // All formulas are evaluated and results are exported
        wb.SaveAsCsv("Example2.csv");

        // Optional: Export specific worksheet
        // WorkSheet ws = wb.GetWorkSheet("Sheet1");
        // ws.SaveAsCsv("Example2.csv");
    }
}
$vbLabelText   $csharpLabel

上述代码执行完毕后,您将得到一个新生成的 CSV 文件。对于更复杂的场景,您可能需要在导出之前选择特定范围对数据进行排序

WordPad 窗口显示一个 CSV 文件,其中包含商品、数量、价格和总计,包括 AXE、钢笔、充电器、耳机和锯子的条目示例 CSV 文件在 WordPad 中打开,显示格式正确的逗号分隔数据,包含标题和多个产品条目

如何从 TSV 格式解析 CSV 文件?

电子表格应用程序经常使用 TSV 文件(制表符分隔值文件)在数据库之间传输数据。 它会保存一个数据表,数据列之间用制表符分隔,每条记录占一行。当数据中包含可能干扰 CSV 解析的逗号时,TSV 文件尤其有用。

IronXL 提供了一个 CSV 解析器,用于将 TSV 格式的文件解析为 CSV 文件,以便更好地进行数据管理。 转换过程简单直接,并能始终保持数据完整性。

让我们从例子开始。 首先,我们将创建一个包含学生数据的TSV文件:

Microsoft Word 文档,显示包含学生数据的表格,数据包括姓名、电子邮件地址、学号 (R-NO) 和字母等级,格式为制表符分隔值 (TSV)。 Microsoft Word 中显示的制表符分隔学生数据示例,展示了 TSV 文件的结构,其中包含姓名、电子邮件地址、学号 (R-NO) 和等级 (Grade) 列。

using IronXL;

class Program
{
    static void Main()
    {
        // Load the TSV file into a WorkBook object
        // IronXL automatically detects tab-separated format
        WorkBook wb = WorkBook.Load("TSV.tsv");

        // Save the WorkBook as a CSV file
        // Tabs are converted to commas automatically
        wb.SaveAsCsv("Example3.csv");

        // Alternative: Load with explicit delimiter specification
        // WorkBook wb = WorkBook.LoadCSV("TSV.tsv", delimiter: "\t");
    }
}
using IronXL;

class Program
{
    static void Main()
    {
        // Load the TSV file into a WorkBook object
        // IronXL automatically detects tab-separated format
        WorkBook wb = WorkBook.Load("TSV.tsv");

        // Save the WorkBook as a CSV file
        // Tabs are converted to commas automatically
        wb.SaveAsCsv("Example3.csv");

        // Alternative: Load with explicit delimiter specification
        // WorkBook wb = WorkBook.LoadCSV("TSV.tsv", delimiter: "\t");
    }
}
$vbLabelText   $csharpLabel

以下是CSV格式的输出结果。 请注意IronXL是如何在保持数据结构不变的情况下,将制表符分隔的值正确转换为逗号分隔的值的:

WordPad 文档,显示一个 CSV 文件,其中包含学生数据,包括姓名、电子邮件、学号和成绩,以逗号分隔。示例 CSV 文件在 WordPad 中打开,显示学生记录,字段包括姓名、电子邮件、学号和成绩,以逗号分隔。

使用IronXL进行 CSV 解析的主要优势是什么?

本教程演示如何使用IronXL在 C# 中将各种文件格式解析为 CSV 文件。 该库为所有文件格式提供一致的 API,无需更改代码结构即可轻松处理不同的 Excel 版本和格式。

此外, IronXL库还提供以下功能,使其成为 Excel 数据处理的绝佳选择:

IronXL在性能优化方面也表现出色。 根据最近的性能改进,该库现在处理文件的速度提高了 40 倍,同时使用的内存也显著减少,使其适用于大规模数据处理任务。 该库可在Docker 容器Linux 系统macOS 环境中无缝运行,提供真正的跨平台兼容性。

对于企业环境, IronXL提供强大的安全功能,并符合行业标准。 该库同时支持VB .NET和 C#,使其能够灵活地应用于不同的开发团队。 处理大型文件时,请注意文件大小限制和可用的优化策略。

查看 IronXL 的功能代码示例文档,了解有关IronXL工作原理的更多信息。 您可以探索具体的用例,例如使用.NET MAUI进行移动开发,或与 DataTables 集成进行数据库操作。 下载IronXL ,即可使用试用许可证密钥免费试用 30 天。 对于生产环境,您需要应用一个许可证密钥,该密钥可以在 Web 应用程序的web.config 文件中进行配置。 访问许可页面,了解有关许可条款和条件的更多信息,包括许可延期升级选项。

购买完整的Iron Suite ,即可用两个IronXL库许可证的价格获得所有五个Iron Software库的许可证!

感谢阅读!

常见问题解答

如何在 C# 中不使用 Interop 解析 CSV 文件?

IronXL 允许您在 C# 中解析 CSV 文件,而无需使用 Interop。您可以将 CSV 文件加载到 WorkBook 对象中并直接操作,将其转换为其他格式如 XLSX 或 XLS,只需几行代码即可。

在 Visual Studio 中安装 IronXL 库需要哪些步骤?

要在 Visual Studio 中安装 IronXL 库,请打开 NuGet 包管理器 UI,搜索 'IronXL' 并安装。或者,您可以使用 Visual Studio 命令行并在包管理器控制台中运行命令 Install-Package IronXL.Excel

如何在 C# 中将 CSV 文件转换为 Excel 格式?

使用 IronXL,您可以通过将 CSV 加载到 WorkBook 对象中,然后使用 SaveAsXlsx 方法以所需格式保存,将 CSV 文件转换为像 XLSX 或 XLS 的 Excel 格式。

是否可以在 C# 中解析 TSV 文件并将其转换为 CSV?

是的,IronXL 允许解析 TSV 文件。将 TSV 文件加载到 WorkBook 对象中,然后用 SaveAsCsv 方法将其转换为 CSV 文件。

C# 的 Excel 库提供哪些功能来进行数据操作?

IronXL 提供诸如数据操作、图表管理、单元格格式化和兼容 Excel 加密等功能。它支持冻结窗格、公式和条件格式设置等操作。

如何在 C# 中编程管理 Excel 电子表格格式?

IronXL 使能够管理如 XLSX、XLS 和 CSV 等不同电子表格格式。它提供了在这些格式之间转换并在 .NET 应用程序中高效处理数据的方法。

在购买之前,我可以尝试 C# 的 Excel 库吗?

是的,IronXL 提供 30 天免费试用,可以从 NuGet 网站下载。这可以让您测试其功能,并确保满足您的需求后再购买。

IronXL 在解析和转换 CSV 文件方面有哪些优势?

IronXL 通过最少代码简化了 CSV 文件的解析和转换过程。它确保了高效的数据处理,并提供了增强 C# 应用程序中 Excel 文件操作的广泛功能。

Curtis Chau
技术作家

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

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我