IRONSOFTWAREHOME
USING IRONXL

如何在C#中导入CSV到数据表

Curtis Chau
Curtis Chau
Updated: 2026年4月21日

欢迎来到本篇关于使用IronXL将 CSV(逗号分隔值)文件导入 C# 中的DataTable 的入门教程。 本指南将为您提供易于遵循的方法,确保即使您是 C# 新手,也能轻松上手。 我们将涵盖从搭建环境到编写源代码的每一个步骤。 在本教程结束时,您将清楚地了解如何将 CSV 数据转换为 DataTable、管理 DataTable 列以及使用文件读取器和 IronXL 在 C# 中处理 CSV 文档的各个方面。

前提条件

在深入探讨之前,请确保您已准备好:

  • 具备 C# 基础知识
  • 您的本地计算机上已安装 Visual Studio
  • IronXL 库,可通过 NuGet 包管理器获取。

理解基本知识

什么是CSV文件?

CSV 文件(逗号分隔值文件)是一种纯文本文件,它使用特定的结构来排列表格数据。 CSV 是一种常见的数据交换格式,因为它简单、紧凑,并且与众多平台兼容。 在 CSV 文件中,数据以逗号分隔,每一行代表一个新的数据行,列标题通常位于第一行。

Understanding DataTables in C#

DataTable 是 C# 中 ADO.NET 库的一部分,它表示内存中的单个数据表。 它由行和列组成,每一列可以是不同的数据类型。 DataTables 具有高度的灵活性,能够以结构化格式表示数据,因此非常适合处理 CSV 文件数据。

设置您的项目

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

  1. 打开 Visual Studio。
  2. 选择文件>新建>项目
  3. 选择一个 C# 控制台应用程序或 Windows 窗体应用程序,并为其命名。

步骤 2:安装 IronXL

IronXL 是一个功能强大的库,允许您在 C# 中处理 Excel和 CSV 文件。 要使用它,需要通过 NuGet 包管理器进行安装。 在Visual Studio中:

  1. 转到**"工具"** > "NuGet 程序包管理器" > "管理解决方案的 NuGet 程序包"

  2. 搜索IronXL.Excel

    如何在C#中将CSV导入到Datatable:图1 - IronXL

  3. 将软件包安装到您的项目中。

使用 IronXL 将 CSV 文件读取到 DataTables 中

步骤 1:设置环境

using IronXL;
using System.Data;

这些using语句包含了我们任务所需的命名空间。

步骤 2:创建导入 CSV 文件的方法

定义一个类CsvToDataTable ,并定义一个静态方法ImportCsvToDataTable 。 此方法负责将 CSV 文件转换为DataTable

public class CsvToDataTable
{
    public static DataTable ImportCsvToDataTable(string filePath)
    {
        // Code snippet to import CSV will be placed here
        return null; // Placeholder return statement
    }
}

步骤 3:加载 CSV 文件

ImportCsvToDataTable方法中,首先加载 CSV 文件。IronXL 提供了一种简单直接的方法来实现这一点:

// Load the CSV file
WorkBook workbook = WorkBook.LoadCSV(filePath);

WorkBook.LoadCSV是 IronXL 中用于加载 CSV 文件的方法。 其中, filePath是您的 CSV 文件的路径。

步骤 4:将 CSV 文件转换为数据表

将加载的 CSV 数据转换为DataTable 。 这一步骤至关重要,因为它将数据转换为可以在 C# 应用程序中轻松操作和显示的格式。

// Get the first worksheet
WorkSheet sheet = workbook.DefaultWorkSheet;
// Convert CSV worksheet to DataTable
DataTable dataTable = sheet.ToDataTable();
return dataTable;

这段代码将 CSV 数据转换为DataTableDefaultWorkSheet方法会从工作簿中获取第一个工作表,如果是 CSV 文件,则相当于获取整个 CSV 数据。ToDataTable 方法是IronXL的一个强大功能,它可以高效地将 CSV 数据映射到DataTable结构,如果 CSV 文件的第一行包含列标题行,也会将其包含在内。

步骤 5:在应用程序中使用该方法

现在,在您的应用程序中使用ImportCsvToDataTable方法。 例如,您可能希望在应用程序启动时或用户上传 CSV 文件时调用此方法。

// Usage
string csvFilePath = "csvfile.csv";
DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath);

此代码片段演示了如何调用ImportCsvToDataTable方法。 将**"csvfile.csv"**替换为您的 CSV 文件的实际文件路径。

步骤 6:处理输出数据表

有了数据表之后,就可以执行各种操作,例如在用户界面中显示数据、筛选数据或处理数据。 以下是一些例子:

在控制台应用程序中显示数据

foreach (DataRow row in dataTable.Rows)
{
    foreach (var item in row.ItemArray)
    {
        Console.Write($"{item} ");
    }
    Console.WriteLine();
}

这段代码遍历数据表中的每一行和每一列,并将数据打印到控制台。

数据筛选

您可以使用 LINQ 来筛选 DataTable 中的数据。 例如,如果您想选择特定列满足某个条件的行:

var filteredRows = dataTable.AsEnumerable()
                            .Where(row => row.Field<string>("ColumnName") == "SomeValue");

将**"ColumnName""SomeValue"**替换为要筛选的列名和值。

完整代码片段

以下是完整的源代码,您可以在项目中使用:

using IronXL;
using System;
using System.Data;
using System.IO;

public class CsvToDataTable
{
    public static DataTable ImportCsvToDataTable(string filePath)
    {
        // Check if the file exists
        if (!File.Exists(filePath))
        {
            throw new FileNotFoundException($"The file at {filePath} was not found.");
        }

        // Load the CSV file
        WorkBook workbook = WorkBook.LoadCSV(filePath);
        // Get the first worksheet
        WorkSheet sheet = workbook.DefaultWorkSheet;
        // Convert the worksheet to DataTable
        DataTable dataTable = sheet.ToDataTable();
        return dataTable;
    }
}

class Program
{
    static void Main(string[] args)
    {
        // Usage
        try
        {
            string filePath = "sample_data.csv"; // CSV file path
            DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(filePath);
            foreach (DataRow row in dataTable.Rows)
            {
                foreach (var item in row.ItemArray)
                {
                    Console.Write($"{item} ");
                }
                Console.WriteLine();
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}

Program.cs文件中可以使用此代码。如果您在生产环境中工作,请不要忘记添加IronXL的许可证。

代码输出

运行代码后,它将加载 CSV 文件并将其数据导入到数据表中。 之后,控制台将显示数据表列的内容。 这有助于验证数据是否已正确导入到数据表中。

如何在C#中将CSV导入到Datatable:图2 - 输出

应对不同情况

在实际应用中,CSV 文件的格式和结构可能存在很大差异。 妥善处理这些变化至关重要,以确保应用程序的稳健性和通用性。接下来,我们将详细介绍如何使用 IronXL 将 CSV 数据导入 DataTable 时处理不同的场景。

处理不同的分隔符

逗号是 CSV 文件中的默认分隔符。 但是,CSV 文件可能并非总是使用逗号分隔值。 有时,会使用分号、制表符或其他字符作为分隔符。 在 IronXL 中处理此问题:

**指定自定义分隔符:**在加载 CSV 文件之前,您可以指定文件的分隔符。 例如,如果你的文件使用分号( ; ),你可以这样设置:

WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";");

处理大型 CSV 文件

处理大型 CSV 文件时,必须考虑内存使用情况和性能。 IronXL 提供了一种高效的方式来处理大型文件,而无需一次性将整个文件加载到内存中。 您可以分块读取文件,也可以利用 IronXL 提供的流式 API 来有效管理内存使用情况。

结论

using IronXL 在 C# 中将 CSV 数据导入 DataTable 非常简单。 它增强了应用程序的数据处理能力,使您能够高效地处理 CSV 文件。 通过本教程中概述的步骤,初学者可以轻松地将此功能集成到他们的 C# 项目中。

IronXL 提供免费试用,供用户体验其各项功能。 对于寻求更高级功能和支持的用户,我们提供许可选项。

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