使用IRONXL

如何在C#中读取CSV文件

雷根·彭
雷根·彭
2023年四月19日
更新 2024年三月24日
分享:

本文将探讨如何使用 IronXL 库创建 C# CSV 阅读器。

IronXL.Excel 库

IronXL 是一个强大的Excel库,为 C# 开发人员提供了创建、加载、读取和编辑各种格式的Excel电子表格的能力。 IronXL 专为 .NET 设计,优先考虑速度、准确性和易用性。 它允许以不同的格式保存Excel文件,并将各种电子表格格式加载到Excel中以实现高效的数据读取。

IronXL.Excel 支持不同文件扩展名的 Excel 工作簿格式,包括 CSV 和 TSV、XLS 和 XLSX、XSLT 和 XLSM。 它与最新版本的 .NET Framework 以及 2.0 之前的所有版本兼容。IronXL 可用于各种平台,包括 Linux、MacOS、Azure、Docker 和 AWS。

如何在 C&num 中使用 IronXL 制作 CSV 阅读器?

先决条件

要将数据从 CSV 文件转换为 Excel 文件并用 C# 阅读,我们需要以下工具:

  1. Visual Studio: 是一个重要的集成开发环境 (IDE),用于开发 C# .NET 应用程序。 这是官方推荐的C#应用程序开发IDE,可以从Microsoft网站下载和安装。 不过,如果开发人员喜欢,也可以使用其他支持 C# 环境的集成开发环境。

  2. 创建控制台应用程序:按照步骤创建一个简单的控制台应用程序。

    • 打开 Visual Studio 并单击 "创建项目"。

    如何在C#中读取CSV文件,图2:新项目窗口

    新项目窗口

    • 从可用选项列表中选择 "控制台应用程序"。 确保所选语言为 C#。

    如何在 C# 中读取 CSV 文件,图 3:创建一个新的控制台应用程序

    创建一个新的控制台应用程序

    • 接下来,请随心所欲地为您的项目命名。

    如何在 C# 中读取 CSV 文件, 图 4: 配置

    配置

    • 项目配置的下一步是选择 .NET Framework。 标准术语中支持的最新版本为 .NET 7.0。 不过,为了避免可能出现的错误,您可以选择更稳定的 .NET 6.0 版本,因为微软为其提供了长期支持。 根据您的具体要求选择合适的版本非常重要。
  3. IronXL——这是一个专为处理Excel电子表格而设计的.NET Excel库。 使用前必须将其安装到您的 C# 应用程序中。 您可以从多个来源下载并安装该软件包:

    1. NuGet - .NET 的软件包管理器。 您可以直接从NuGet 网站下载 IronXL。

    2. Visual Studio NuGet 包管理器:通过转到工具 > NuGet 包管理器 > 管理解决方案的包...

    3. 从 Iron 网站直接下载.NET Excel DLL zip 文件,并将其添加到项目解决方案中作为项目引用。

添加 IronXL 命名空间

一旦您具备了先决条件,下一步是在main.cs文件的源代码顶部添加IronXL命名空间:

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

打开现有 CSV 文件

IronXL 提供了一种简单的方法在 C# 中读取 CSV 文件。 首先,打开一个 CSV 文件进行阅读。 这是一种基于行和列的文件类型。 这里使用了 WorkBook 类及其 LoadCSV 方法来打开一个 CSV 文件。代码如下:

var csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
var csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
Dim csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
$vbLabelText   $csharpLabel

IronXL 中的LoadCSV方法允许您打开 CSV 文件并将其转换为 XLSX 格式。 该方法提供了指定 CSV 文件中使用的列表定界符的选项。在本例中,使用的是默认的逗号分隔符。 生成的文件打开后,可以使用 IronXL.Excel 的读取和处理 Excel 电子表格的功能进行进一步处理。

如何在 C# 中读取 CSV 文件,图 5: CSV 文件

CSV 文件

从 CSV 阅读器类中获取工作表

在上一步中,使用 IronXL.Excel 将 CSV 文件打开为 Excel 工作簿。 现在,使用WorkSheet类从工作簿中获取默认工作表。 下面的示例演示了如何获取读取 CSV 数据的工作表:

WorkSheet ws = workbook.DefaultWorkSheet;
WorkSheet ws = workbook.DefaultWorkSheet;
Dim ws As WorkSheet = workbook.DefaultWorkSheet
$vbLabelText   $csharpLabel

有关使用 Excel 工作表的更多信息,您可以访问此代码示例页面

使用 C# DataTable 读取 CSV 数据

一旦 CSV 加载成功,数据作为工作表可用,就可以在 C# DataTable 中非常方便地从 CSV 文件中读取数据。

将工作表转换为数据表

首先,创建一个DataTable实例,并使用ToDataTable方法将工作表数据转换为表格。 以下代码有助于完成此任务:

DataTable dt = ws.ToDataTable(true);
DataTable dt = ws.ToDataTable(true);
Dim dt As DataTable = ws.ToDataTable(True)
$vbLabelText   $csharpLabel

开始读取 CSV 数据

现在,使用DataTable实例遍历所有记录。 数据以行和列的形式接收。 首先,然后移动每一列以获取其值。 要获取所有记录以及标题行,请使用以下代码片段:

foreach (DataRow row in dt.Rows) //access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
    {
        Console.Write(row [i] + "  "); //format output 
    }
    Console.WriteLine();
}
foreach (DataRow row in dt.Rows) //access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
    {
        Console.Write(row [i] + "  "); //format output 
    }
    Console.WriteLine();
}
For Each row As DataRow In dt.Rows 'access rows
	For i As Integer = 0 To dt.Columns.Count - 1 'access columns of corresponding row
		Console.Write(row (i) & "  ") 'format output
	Next i
	Console.WriteLine()
Next row
$vbLabelText   $csharpLabel

在上述代码中,使用foreach循环从行集合中获取单个记录。 然后在嵌套的 for 循环中计算列数,最后将每一行的数据打印到屏幕上。 输出格式类似于 CSV 文件。

如何在 C# 中读取 CSV 文件,图 6:输出

输出

摘要

本文演示了如何使用 IronXL 库在 C# 中创建 CSV 阅读器。 IronXL.Excel 支持 Excel 电子表格中的 CSV 格式,因此加载 CSV 文件变得非常容易。 DataTable 对象用于创建一个优雅的CSV读取器,并将输出格式化以匹配原始文件。

IronXL还提供方便的不同文件格式之间的转换,并允许从头创建Excel文件,而无需安装Interop和Microsoft Excel。 它还兼容 C# DataSetDataTable,为开发人员提供在不依赖第三方应用程序的情况下互相转换数据的灵活性。 IronXL.Excel 功能强大,是 C# 开发人员使用 Excel 电子表格和高效处理 CSV 数据的重要工具。

IronXL 可免费用于开发。 但是,商业用途需要购买其许可证,起价为$749。 您还可以使用其免费试用来测试其编译的 .dll 与您的项目在生产模式下的兼容性。

雷根·彭
软件工程师
Regan毕业于雷丁大学,拥有电子工程学士学位。在加入Iron Software之前,他的前工作职位要求他专注于单一任务;他在Iron Software最喜欢的是能进行多种工作,无论是增加销售价值、技术支持、产品开发还是营销。他喜欢了解开发人员如何使用Iron Software的库,并利用这些知识不断改进文档和开发产品。
< 前一页
如何在C#中将数据集转换为Excel
下一步 >
如何在C#中从Excel文件获取单元格值