使用 IRONXL 如何在C#中导入CSV到数据表 Curtis Chau 已更新:2025年6月22日 下载 IronXL NuGet 下载 DLL 下载 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 欢迎来到本篇关于使用IronXL将 CSV(逗号分隔值)文件导入 C# 中的DataTable 的入门教程。 本指南将为您提供易于遵循的方法,确保即使您是 C# 新手,也能轻松上手。 我们将涵盖从搭建环境到编写源代码的每一个步骤。 在本教程结束时,您将清楚地了解如何将 CSV 数据转换为 DataTable、管理 DataTable 列以及使用文件读取器和 IronXL 在 C# 中处理 CSV 文档的各个方面。 前提条件 在深入探讨之前,请确保您已准备好: 具备 C# 基础知识 您的本地计算机上已安装 Visual Studio IronXL 库,可通过 NuGet 包管理器获取。 理解基本知识 什么是CSV文件? CSV 文件(逗号分隔值文件)是一种纯文本文件,它使用特定的结构来排列表格数据。 CSV 是一种常见的数据交换格式,因为它简单、紧凑,并且与众多平台兼容。 在 CSV 文件中,数据以逗号分隔,每一行代表一个新的数据行,列标题通常位于第一行。 理解 C# 中的 DataTables DataTable 是 C# 中 ADO.NET 库的一部分,它表示内存中的单个数据表。 它由行和列组成,每一列可以是不同的数据类型。 DataTables 具有高度的灵活性,能够以结构化格式表示数据,因此非常适合处理 CSV 文件数据。 设置您的项目 步骤 1:创建一个新的 C# 项目 打开 Visual Studio。 选择文件>新建>项目。 选择一个 C# 控制台应用程序或 Windows 窗体应用程序,并为其命名。 步骤 2:安装 IronXL IronXL 是一个功能强大的库,允许您在 C# 中处理 Excel和 CSV 文件。 要使用它,需要通过 NuGet 包管理器进行安装。 在Visual Studio中: 转到"工具" > "NuGet 程序包管理器" > "管理解决方案的 NuGet 程序包" 。 搜索IronXL.Excel 。 如何在 C# 中将 CSV 文件导入数据表:图 1 - IronXL 将软件包安装到您的项目中。 使用 IronXL 将 CSV 文件读取到 DataTables 中 步骤 1:设置环境 using IronXL; using System.Data; using IronXL; using System.Data; Imports IronXL Imports System.Data $vbLabelText $csharpLabel 这些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 } } public class CsvToDataTable { public static DataTable ImportCsvToDataTable(string filePath) { // Code snippet to import CSV will be placed here return null; // Placeholder return statement } } Public Class CsvToDataTable Public Shared Function ImportCsvToDataTable(ByVal filePath As String) As DataTable ' Code snippet to import CSV will be placed here Return Nothing ' Placeholder return statement End Function End Class $vbLabelText $csharpLabel 步骤 3:加载 CSV 文件 在ImportCsvToDataTable方法中,首先加载 CSV 文件。IronXL 提供了一种简单直接的方法来实现这一点: // Load the CSV file WorkBook workbook = WorkBook.LoadCSV(filePath); // Load the CSV file WorkBook workbook = WorkBook.LoadCSV(filePath); ' Load the CSV file Dim workbook As WorkBook = WorkBook.LoadCSV(filePath) $vbLabelText $csharpLabel 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; // Get the first worksheet WorkSheet sheet = workbook.DefaultWorkSheet; // Convert CSV worksheet to DataTable DataTable dataTable = sheet.ToDataTable(); return dataTable; ' Get the first worksheet Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Convert CSV worksheet to DataTable Dim dataTable As DataTable = sheet.ToDataTable() Return dataTable $vbLabelText $csharpLabel 这段代码将 CSV 数据转换为DataTable 。 DefaultWorkSheet方法会从工作簿中获取第一个工作表,如果是 CSV 文件,则相当于获取整个 CSV 数据。ToDataTable 方法是IronXL的一个强大功能,它可以高效地将 CSV 数据映射到DataTable结构,如果 CSV 文件的第一行包含列标题行,也会将其包含在内。 步骤 5:在应用程序中使用该方法 现在,在您的应用程序中使用ImportCsvToDataTable方法。 例如,您可能希望在应用程序启动时或用户上传 CSV 文件时调用此方法。 // Usage string csvFilePath = "csvfile.csv"; DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath); // Usage string csvFilePath = "csvfile.csv"; DataTable dataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath); ' Usage Dim csvFilePath As String = "csvfile.csv" Dim dataTable As DataTable = CsvToDataTable.ImportCsvToDataTable(csvFilePath) $vbLabelText $csharpLabel 此代码片段演示了如何调用ImportCsvToDataTable方法。 将"csvfile.csv"替换为您的 CSV 文件的实际文件路径。 步骤 6:处理输出数据表 有了数据表之后,就可以执行各种操作,例如在用户界面中显示数据、筛选数据或处理数据。 以下是一些例子: 在控制台应用程序中显示数据 foreach (DataRow row in dataTable.Rows) { foreach (var item in row.ItemArray) { Console.Write($"{item} "); } Console.WriteLine(); } foreach (DataRow row in dataTable.Rows) { foreach (var item in row.ItemArray) { Console.Write($"{item} "); } Console.WriteLine(); } For Each row As DataRow In dataTable.Rows For Each item In row.ItemArray Console.Write($"{item} ") Next item Console.WriteLine() Next row $vbLabelText $csharpLabel 这段代码遍历数据表中的每一行和每一列,并将数据打印到控制台。 数据筛选 您可以使用 LINQ 来筛选 DataTable 中的数据。 例如,如果您想选择特定列满足某个条件的行: var filteredRows = dataTable.AsEnumerable() .Where(row => row.Field<string>("ColumnName") == "SomeValue"); var filteredRows = dataTable.AsEnumerable() .Where(row => row.Field<string>("ColumnName") == "SomeValue"); Dim filteredRows = dataTable.AsEnumerable().Where(Function(row) row.Field(Of String)("ColumnName") = "SomeValue") $vbLabelText $csharpLabel 将"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}"); } } } 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}"); } } } Imports IronXL Imports System Imports System.Data Imports System.IO Public Class CsvToDataTable Public Shared Function ImportCsvToDataTable(ByVal filePath As String) As DataTable ' Check if the file exists If Not File.Exists(filePath) Then Throw New FileNotFoundException($"The file at {filePath} was not found.") End If ' Load the CSV file Dim workbook As WorkBook = WorkBook.LoadCSV(filePath) ' Get the first worksheet Dim sheet As WorkSheet = workbook.DefaultWorkSheet ' Convert the worksheet to DataTable Dim dataTable As DataTable = sheet.ToDataTable() Return dataTable End Function End Class Friend Class Program Shared Sub Main(ByVal args() As String) ' Usage Try Dim filePath As String = "sample_data.csv" ' CSV file path Dim dataTable As DataTable = CsvToDataTable.ImportCsvToDataTable(filePath) For Each row As DataRow In dataTable.Rows For Each item In row.ItemArray Console.Write($"{item} ") Next item Console.WriteLine() Next row Catch ex As Exception Console.WriteLine($"An error occurred: {ex.Message}") End Try End Sub End Class $vbLabelText $csharpLabel 您可以在Program.cs文件中使用此代码。如果您在生产环境中使用,请不要忘记添加 IronXL 的许可证。 代码输出 运行代码后,它将加载 CSV 文件并将其数据导入到数据表中。 之后,控制台将显示数据表列的内容。 这有助于验证数据是否已正确导入到数据表中。 如何在 C# 中将 CSV 文件导入到数据表中:图 2 - 输出 应对不同情况 在实际应用中,CSV 文件的格式和结构可能存在很大差异。 妥善处理这些变化至关重要,以确保应用程序的稳健性和通用性。接下来,我们将详细介绍如何使用 IronXL 将 CSV 数据导入 DataTable 时处理不同的场景。 处理不同的分隔符 逗号是 CSV 文件中的默认分隔符。 但是,CSV 文件可能并非总是使用逗号分隔值。 有时,会使用分号、制表符或其他字符作为分隔符。 在 IronXL 中处理此问题: 指定自定义分隔符:在加载 CSV 文件之前,您可以指定文件的分隔符。 例如,如果你的文件使用分号( ; ),你可以这样设置: WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";"); WorkBook workbook = WorkBook.LoadCSV(filePath, listDelimiter: ";"); Dim workbook As WorkBook = WorkBook.LoadCSV(filePath, listDelimiter:= ";") $vbLabelText $csharpLabel 处理大型 CSV 文件 处理大型 CSV 文件时,必须考虑内存使用情况和性能。 IronXL 提供了一种高效的方式来处理大型文件,而无需一次性将整个文件加载到内存中。 您可以分块读取文件,也可以利用 IronXL 提供的流式 API 来有效管理内存使用情况。 结论 使用 IronXL 在 C# 中将 CSV 数据导入 DataTable 非常简单。 它增强了应用程序的数据处理能力,使您能够高效地处理 CSV 文件。 通过本教程中概述的步骤,初学者可以轻松地将此功能集成到他们的 C# 项目中。 IronXL 提供免费试用,供用户体验其各项功能。 对于寻求更高级功能和支持的用户,我们提供许可选项。 常见问题解答 如何在 C# 中将 CSV 数据导入 DataTable? 您可以使用 IronXL 的 WorkBook.LoadCSV 方法加载 CSV 文件,然后使用 ToDataTable 方法将其转换为 DataTable。 设置 Visual Studio 项目以使用 IronXL 包含哪些步骤? 要设置使用 IronXL 的 Visual Studio 项目,通过转到工具 > NuGet 包管理器 > 管理解决方案的 NuGet 包并搜索 IronXL.Excel,然后将其添加到您的项目中。 IronXL 可以处理具有不同分隔符的 CSV 文件吗? 是的,IronXL可通过WorkBook.LoadCSV方法中的listDelimiter参数处理不同分隔符的CSV文件。 加载 CSV 文件时遇到“找不到文件”错误,我该怎么办? 如果遇到“找不到文件”错误,请确保文件路径正确。使用 File.Exists(filePath) 检查文件是否存在以防止此类错误。 我如何在 C# 中有效管理大型 CSV 文件? 为了有效管理大型 CSV 文件,IronXL 提供了按块读取文件或使用流 API 的功能,这有助于优化内存使用和性能。 将 CSV 数据转换为 DataTable 的好处是什么? 将 CSV 数据转换为 DataTable 可以进行结构化数据操作,从而更容易在 C# 应用程序中处理、过滤和显示数据。 如何在 C# 控制台应用程序中显示 DataTable 内容? 要在 C# 控制台应用程序中显示 DataTable 内容,通过嵌套循环遍历每个 DataRow 并打印每个项目以在控制台中显示数据。 什么是 CSV 文件及其用途是什么? CSV 文件,即逗号分隔值文件,是一种将数据用逗号分隔的纯文本文件。由于其简单性和与许多应用程序的兼容性,它被广泛用于数据交换。 导入 CSV 到 DataTable 教程的前提条件是什么? 要遵循本教程,您需要对 C# 有基本了解,在您的计算机上安装 Visual Studio,并通过 NuGet 包管理器获取 IronXL 库。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已发布2026年2月15日 如何使用 OleDb 与 IronXL.Excel 将 DataTable 导出到 Excel C# 了解如何使用 OleDb 与 IronXL.Excel 将 DataTable 导出到 Excel C#。 阅读更多 已发布2026年2月15日 如何使用 IronXL for .NET 在未安装 Office 的情况下在 VB.NET 中打开现有 Excel 文件 了解如何使用 IronXL for .NET 在未安装 Office 的情况下在 VB.NET 中打开现有 Excel 文件。 阅读更多 已发布2026年2月15日 C# CSV 到 XLSX:完整的开发人员指南 使用 IronXL 在 C# 中将 CSV 转换为 XLSX。加载 CSV 文件、保留数据类型、添加图表并导出为 Excel 格式,而无需依赖 Microsoft Office。 阅读更多 如何在 VB .NET 中将 Excel 文件导入到 SQL 数据库如何在 C# 中将 CSV 文件转...
已发布2026年2月15日 如何使用 OleDb 与 IronXL.Excel 将 DataTable 导出到 Excel C# 了解如何使用 OleDb 与 IronXL.Excel 将 DataTable 导出到 Excel C#。 阅读更多
已发布2026年2月15日 如何使用 IronXL for .NET 在未安装 Office 的情况下在 VB.NET 中打开现有 Excel 文件 了解如何使用 IronXL for .NET 在未安装 Office 的情况下在 VB.NET 中打开现有 Excel 文件。 阅读更多
已发布2026年2月15日 C# CSV 到 XLSX:完整的开发人员指南 使用 IronXL 在 C# 中将 CSV 转换为 XLSX。加载 CSV 文件、保留数据类型、添加图表并导出为 Excel 格式,而无需依赖 Microsoft Office。 阅读更多