IRONSOFTWAREHOME
USING IRONXL

如何在 C# 中将 CSV 文件转换为列表

Curtis Chau
Curtis Chau
Updated: 2026年6月28日

在这个初学者教程中,我们将看到如何使用IronXL库将读取CSV文件C#中的列表。 嗯,这是你在任何编程语言中都需要知道的最基本的事情之一,因为CSV文件是一种非常常见的数据存储和从一个系统或应用程序传输到另一个的方式。 我们将涵盖从设置项目到有效解析CSV文件的所有内容。

How to Convert CSV File into List in C#

  1. 在Visual Studio中创建一个C#控制台项目。
  2. 使用NuGet包管理器安装C# CSV库。
  3. 使用WorkBook.LoadCSV方法加载CSV文件。
  4. 从文件中读取数据值并填充列表。
  5. 在控制台上打印列表。

设置您的项目

步骤1:创建一个新的C#项目

  1. **打开 Visual Studio:**在您的计算机上启动 Visual Studio。
  2. **创建新项目:**点击"创建新项目"。 这将打开一个窗口,您可以在其中选择项目类型。
  3. **选择项目类型:**为简化操作,请选择"控制台应用程序 (.NET Core)"作为项目类型。
  4. **命名您的项目:**将项目命名为 CSVFileReader
  5. **选择位置:**在设备上选择一个合适的位置来保存此项目。
  6. **生成项目:**点击"创建"以初始化您的新的 C# 项目。

步骤2:安装IronXL库

  1. **打开 NuGet 包管理器:**在 Visual Studio 中,转到"工具"菜单,然后选择"NuGet 包管理器",再选择"管理解决方案的 NuGet 包..."。

  2. **查找 IronXL:**点击"浏览"选项卡,搜索"IronXL.Excel"。

    如何在C#中将CSV文件转换为列表:图1 - IronXL

  3. **安装 IronXL:**在搜索结果中找到 IronXL 包,选中它,然后点击"安装"。请确保您同意所有许可协议并查看相关更改。

  4. **检查安装:**安装完成后,您应在项目的引用列表中看到 IronXL。

现在,您的CSVFileReader项目已设置好IronXL库,您可以开始在C#中读取和处理CSV文件。 此设置为我们将在本教程后续部分进行的CSV读取任务奠定了基础。

Parsing and Processing CSV Files in C#

在设置项目并安装IronXL库后,让我们专注于解析和处理CSV文件。 我们将在Program.cs文件内工作,该文件在您的CSVFileReader项目中自动生成。

步骤1:指定文件路径

在读取任何数据之前,我们需要知道CSV文件所在的位置。 在Main方法中定义一个变量来存储文件路径。

string filename = "csvfile.csv"; // Replace with your actual file path

步骤2:加载CSV文件

IronXL使加载CSV文件变得简单。使用WorkBook对象中。

var csv = WorkBook.LoadCSV(filename);

步骤3:定义数据结构

创建一个类来表示CSV文件中的数据结构。例如,如果您的CSV包含关于人的信息,定义一个Person类,如下所示:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

步骤4:解析CSV数据

在这一步中,我们将解析CSV文件并用数据填充List<Person>。 我们使用IronXL来处理CSV读取,关键是正确处理CSV的每一行或行,考虑到标题和任何潜在的空行。 以下是代码的详细分解:

List<Person> people = new List<Person>();
bool isFirstRow = true; // Add a flag to check for the first row
foreach (var row in csv.WorkSheets[0].Rows)
{
    if (isFirstRow)
    {
        isFirstRow = false; // Set the flag to false after skipping the first row
        continue;
    }
    if (row.IsEmpty) continue; // Skip empty rows
    var cells = row.ToArray();
    var person = new Person()
    {
        Name = cells[0].StringValue,
        Age = int.Parse(cells[1].StringValue) // Ensure this is a numeric value
    };
    people.Add(person);
}

在此解析过程中,我们首先初始化一个isFirstRow来跳过CSV文件的标题行。 foreach循环遍历CSV文件的每一行。在第一次迭代期间,标题行被识别并跳过,确保仅处理数据行。 然后我们检查每一行,确保其不为空,使用row.IsEmpty。 这一步对于避免因空行而导致的解析错误至关重要。

对于每一个数据行,我们将其转换为一个单元格数组(Person对象。 正确分析和转换数据类型至关重要,例如将"年龄"字符串转换为整数。 解析后的people列表中。这种方法确保只有有效的数据行被处理和存储,有效地处理了诸如数字列中的非数字字符串或意外的空行之类的潜在问题。

步骤5:显示数据

将CSV数据解析到我们的List<Person>后,下一重要步骤是显示和验证数据。 这不仅有助于确保我们的解析成功,还可以让我们观察输出并进行快速数据质量检查。 这是您可以实现的方法:

foreach (var person in people)
{
    Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
}

以下是完整的Program.cs代码:

using IronXL;
using System;
using System.Collections.Generic;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main(string[] args)
{
    string filename = @"C:\Users\tayya\Downloads\sample_data.csv"; // Replace with your actual file path
    var csv = WorkBook.LoadCSV(filename);
    List<Person> people = new List<Person>();
    bool isFirstRow = true; // Add a flag to check for the first row
    foreach (var row in csv.WorkSheets[0].Rows)
    {
        if (isFirstRow)
        {
            isFirstRow = false; // Set the flag to false after skipping the first row
            continue;
        }
        if (row.IsEmpty) continue; // Skip empty rows
        var cells = row.ToArray();
        var person = new Person()
        {
            Name = cells[0].StringValue,
            Age = int.Parse(cells[1].StringValue) // Ensure this is a numeric value
        };
        people.Add(person);
    }
    foreach (var person in people)
    {
        Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
    }
}

代码输出

当您运行文件时,它将在控制台中显示列表的数据:

如何在C#中将CSV文件转换为列表:图2 - 列表输出

处理不同数据类型

在处理CSV文件中的各种数据类型时,调整解析逻辑以适应每个数据列的特定类型非常重要。 在Convert.ToInt32将字符串转换为整数。 这对于避免类型不匹配错误至关重要。

对于更复杂的数据类型,如日期,使用DateTime对象。 了解CSV文件中使用的日期格式非常重要,以确保它与代码中期望的格式相匹配。 不一致的日期格式可能导致解析错误或数据解释错误。

结论

您刚刚学习了如何使用IronXL在C#中读取、解析和显示CSV文件的数据。 这种方法可以在不同类型的数据结构和文件格式上使用。 因此,这对于每一个选择C#作为主要语言的开发者来说都是一个总体上有用的技能。

IronXL为用户提供免费试用以体验其功能。 一旦试用期结束,IronXL的许可证起始价格为$999。

请记住,需要处理异常和边界案例,以编写更健壮的代码,特别是在管理不同的数据类型和使用大型文件时。 继续实验和探索IronXL的更多功能,以增强您在C#中的数据处理能力。 祝您编码愉快!

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