使用 IRONXL C#中的CSV文件读取教程 Curtis Chau 已更新:七月 28, 2025 下载 IronXL NuGet 下载 DLL 下载 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在双子座打开 向 Gemini 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 使用各种 Excel 格式通常需要读取数据,然后以编程方式重新配置数据。 在本文中,我们将学习如何使用 IronXL(一款非常适合这项工作的工具)在 C# 中读取 CSV 文件并解析 Excel 电子表格中的数据。 什么是CSV? CSV 是一种简单的数据格式,但可能存在很多差异; 在我们的 C# 项目中,以编程方式读取数据可能很困难,因为它使用多个分隔符来区分数据的行和列。 本文将向您展示如何使用IronXL 库读取 CSV 文件。 1. 如何在 C# 中读取 CSV 文件 在 MVC、ASP.NET 或 .NET Core 中使用 IronXL 读取 CSV 文件之前,您需要先安装它。 以下是简要介绍。 在 Visual Studio 中,选择"项目"菜单 管理 NuGet 程序包 搜索 IronXL.Excel 安装 C# 读取 CSV 文件教程,图 1:在 Visual Studio 的 NuGet 包管理器中搜索 IronXL 在 Visual Studio 的 NuGet 包管理器中搜索 IronXL 当您需要在 C# 中读取 CSV 文件时,IronXL 是完美的工具。 您可以读取以逗号或其他任何分隔符分隔的 CSV 文件,如下面的代码片段所示。 // Load a CSV file and interpret it as an Excel-like workbook WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ","); // Access the default worksheet in the workbook WorkSheet ws = workbook.DefaultWorkSheet; // Save the workbook to a new Excel file workbook.SaveAs("Csv_To_Excel.xlsx"); // Load a CSV file and interpret it as an Excel-like workbook WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ","); // Access the default worksheet in the workbook WorkSheet ws = workbook.DefaultWorkSheet; // Save the workbook to a new Excel file workbook.SaveAs("Csv_To_Excel.xlsx"); ' Load a CSV file and interpret it as an Excel-like workbook Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",") ' Access the default worksheet in the workbook Dim ws As WorkSheet = workbook.DefaultWorkSheet ' Save the workbook to a new Excel file workbook.SaveAs("Csv_To_Excel.xlsx") $vbLabelText $csharpLabel Output: C# 中读取 CSV 文件:教程,图 2:以逗号分隔符输出 CSV 文件 输出以逗号分隔的 CSV 文件 代码解释: 创建了一个WorkBook对象。 然后使用 WorkBook 对象的LoadCSV方法来指定 CSV 的名称、格式以及要读取的 CSV 文件中使用的分隔符。 在这种情况下,逗号用作分隔符。 然后创建一个WorkSheet对象。 这里将放置 CSV 文件的内容。 文件将以新名称和新格式保存。 C# 读取 CSV 文件教程,图 3:数据在 Microsoft Excel 中显示 在 Microsoft Excel 中显示的数据 2. IronXL for Excel 文件 在您的项目中使用 IronXL,它是一种在 C# 中处理 Excel 文件格式的简化方法。 你可以通过直接下载的方式安装 IronXL 。 或者,您可以使用适用于 Visual Studio 的 NuGet Install 。 该软件可免费用于开发。 dotnet add package IronXL.Excel 3. 加载WorkBook并访问WorkSheet WorkBook是 IronXL 的一个类,其对象提供对 Excel 文件及其所有功能的完全访问权限。 例如,如果我们想访问一个 Excel 文件,我们可以使用以下代码: // Load the Excel file WorkBook wb = WorkBook.Load("sample.xlsx"); // Excel file path // Load the Excel file WorkBook wb = WorkBook.Load("sample.xlsx"); // Excel file path ' Load the Excel file Dim wb As WorkBook = WorkBook.Load("sample.xlsx") ' Excel file path $vbLabelText $csharpLabel 要访问 Excel 文件的特定工作表,IronXL 提供了WorkSheet类。 // Access a specific worksheet by name WorkSheet ws = wb.GetWorkSheet("Sheet1"); // by sheet name // Access a specific worksheet by name WorkSheet ws = wb.GetWorkSheet("Sheet1"); // by sheet name ' Access a specific worksheet by name Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' by sheet name $vbLabelText $csharpLabel 获取 Excel 工作表ws后,您可以从中提取任何类型的数据并对其执行所有 Excel 功能。 可以通过以下步骤从 Excel 工作表ws访问数据: using IronXL; class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Iterate through a range of cells and display their values foreach (var cell in ws["A2:A10"]) { Console.WriteLine("Value is: {0}", cell.Text); } Console.ReadKey(); } } using IronXL; class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Iterate through a range of cells and display their values foreach (var cell in ws["A2:A10"]) { Console.WriteLine("Value is: {0}", cell.Text); } Console.ReadKey(); } } Imports IronXL Friend Class Program Shared Sub Main(ByVal args() As String) ' Load the workbook and access a specific worksheet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Iterate through a range of cells and display their values For Each cell In ws("A2:A10") Console.WriteLine("Value is: {0}", cell.Text) Next cell Console.ReadKey() End Sub End Class $vbLabelText $csharpLabel 4. 将 Excel 工作表读取为数据表 使用 IronXL,将 Excel WorkSheet作为数据表进行操作非常容易。 DataTable dt = ws.ToDataTable(true); // Converts the worksheet to a DataTable, using the first row as column names DataTable dt = ws.ToDataTable(true); // Converts the worksheet to a DataTable, using the first row as column names Dim dt As DataTable = ws.ToDataTable(True) ' Converts the worksheet to a DataTable, using the first row as column names $vbLabelText $csharpLabel 请使用以下命名空间: using IronXL; using System.Data; using IronXL; using System.Data; Imports IronXL Imports System.Data $vbLabelText $csharpLabel 写下以下代码: class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("Weather.xlsx"); // Your Excel file Name WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Parse worksheet into datatable DataTable dt = ws.ToDataTable(true); // Parse Sheet1 of sample.xlsx file into DataTable // Iterate through rows and columns to display their values 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] + " "); } Console.WriteLine(); } } } class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("Weather.xlsx"); // Your Excel file Name WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Parse worksheet into datatable DataTable dt = ws.ToDataTable(true); // Parse Sheet1 of sample.xlsx file into DataTable // Iterate through rows and columns to display their values 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] + " "); } Console.WriteLine(); } } } Friend Class Program Shared Sub Main(ByVal args() As String) ' Load the workbook and access a specific worksheet Dim wb As WorkBook = WorkBook.Load("Weather.xlsx") ' Your Excel file Name Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Parse worksheet into datatable Dim dt As DataTable = ws.ToDataTable(True) ' Parse Sheet1 of sample.xlsx file into DataTable ' Iterate through rows and columns to display their values 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) & " ") Next i Console.WriteLine() Next row End Sub End Class $vbLabelText $csharpLabel C# 中读取 CSV 文件:教程,图 4:DataTable 对象的控制台输出 来自 DataTable 对象的控制台输出 在这个例子中,我们将了解如何使用 Excel 文件作为DataSet 。 class Program { static void Main(string[] args) { // Load the workbook and convert it to a DataSet WorkBook wb = WorkBook.Load("sample.xlsx"); DataSet ds = wb.ToDataSet(); // Parse WorkBook wb into DataSet // Iterate through tables to display their names foreach (DataTable dt in ds.Tables) { Console.WriteLine(dt.TableName); } } } class Program { static void Main(string[] args) { // Load the workbook and convert it to a DataSet WorkBook wb = WorkBook.Load("sample.xlsx"); DataSet ds = wb.ToDataSet(); // Parse WorkBook wb into DataSet // Iterate through tables to display their names foreach (DataTable dt in ds.Tables) { Console.WriteLine(dt.TableName); } } } Friend Class Program Shared Sub Main(ByVal args() As String) ' Load the workbook and convert it to a DataSet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") Dim ds As DataSet = wb.ToDataSet() ' Parse WorkBook wb into DataSet ' Iterate through tables to display their names For Each dt As DataTable In ds.Tables Console.WriteLine(dt.TableName) Next dt End Sub End Class $vbLabelText $csharpLabel C# 中读取 CSV 文件:教程,图 5:从 DataSet 对象访问工作表名称 从数据集对象中访问工作表名称 让我们来看另一个例子,了解如何访问所有 Excel 工作表中每个单元格的值。 在这里,我们可以访问 Excel 文件中每个工作表的每个单元格的值。 class Program { static void Main(string[] args) { // Load the workbook and convert it to a DataSet WorkBook wb = WorkBook.Load("Weather.xlsx"); DataSet ds = wb.ToDataSet(); // Treat the complete Excel file as DataSet // Iterate through each table and its rows and columns foreach (DataTable dt in ds.Tables) // Treat Excel WorkSheet as DataTable { foreach (DataRow row in dt.Rows) // Corresponding Sheet's Rows { for (int i = 0; i < dt.Columns.Count; i++) // Sheet columns of corresponding row { Console.Write(row[i] + " "); } Console.WriteLine(); } } } } class Program { static void Main(string[] args) { // Load the workbook and convert it to a DataSet WorkBook wb = WorkBook.Load("Weather.xlsx"); DataSet ds = wb.ToDataSet(); // Treat the complete Excel file as DataSet // Iterate through each table and its rows and columns foreach (DataTable dt in ds.Tables) // Treat Excel WorkSheet as DataTable { foreach (DataRow row in dt.Rows) // Corresponding Sheet's Rows { for (int i = 0; i < dt.Columns.Count; i++) // Sheet columns of corresponding row { Console.Write(row[i] + " "); } Console.WriteLine(); } } } } Friend Class Program Shared Sub Main(ByVal args() As String) ' Load the workbook and convert it to a DataSet Dim wb As WorkBook = WorkBook.Load("Weather.xlsx") Dim ds As DataSet = wb.ToDataSet() ' Treat the complete Excel file as DataSet ' Iterate through each table and its rows and columns For Each dt As DataTable In ds.Tables ' Treat Excel WorkSheet as DataTable For Each row As DataRow In dt.Rows ' Corresponding Sheet's Rows For i As Integer = 0 To dt.Columns.Count - 1 ' Sheet columns of corresponding row Console.Write(row(i) & " ") Next i Console.WriteLine() Next row Next dt End Sub End Class $vbLabelText $csharpLabel C# 中读取 CSV 文件:教程,图 6:数据集对象的控制台输出 数据集对象的控制台输出 5. C# .NET 中的 CSV 解析 CSV 文件在字段中处理换行符的方式上存在大量问题,或者字段可能包含在引号中,从而完全阻止简单的字符串拆分方法。 最近,我发现使用 C# .NET 转换 CSV 时,可以通过指定可自定义的分隔符而不是使用string.Split(',')以逗号分隔值,来实现以下选项。 6. 在 C# 记录中读取 CSV 数据 此过程会将读取器切换到下一个文件。我们在 TryGetField 中读取 CSV 字段文件。 我们使用读取函数读取 CSV 文件中的字段作为记录字段。 // Load a CSV file, specify the file format and delimiter WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ","); // Access the default worksheet from the workbook WorkSheet ws = workbook.DefaultWorkSheet; // Convert worksheet to DataTable DataTable dt = ws.ToDataTable(true); // Parse Sheet1 of sample.xlsx file into DataTable // Iterate through rows and columns to display their values 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] + " "); } Console.WriteLine(); } // Load a CSV file, specify the file format and delimiter WorkBook workbook = WorkBook.LoadCSV("Weather.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ","); // Access the default worksheet from the workbook WorkSheet ws = workbook.DefaultWorkSheet; // Convert worksheet to DataTable DataTable dt = ws.ToDataTable(true); // Parse Sheet1 of sample.xlsx file into DataTable // Iterate through rows and columns to display their values 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] + " "); } Console.WriteLine(); } ' Load a CSV file, specify the file format and delimiter Dim workbook As WorkBook = WorkBook.LoadCSV("Weather.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",") ' Access the default worksheet from the workbook Dim ws As WorkSheet = workbook.DefaultWorkSheet ' Convert worksheet to DataTable Dim dt As DataTable = ws.ToDataTable(True) ' Parse Sheet1 of sample.xlsx file into DataTable ' Iterate through rows and columns to display their values 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) & " ") Next i Console.WriteLine() Next row $vbLabelText $csharpLabel C# 读取 CSV 文件教程,图 7:DataTable 的控制台输出 数据表的控制台输出 7. 从 Excel 文件中获取数据 现在我们可以使用各种方法,轻松地从打开的 Excel WorkSheet中获取任何类型的数据。 在以下示例中,我们可以看到如何访问特定单元格的值并将其解析为string : // Access the data by cell addressing string val = ws["Cell Address"].ToString(); // Access the data by cell addressing string val = ws["Cell Address"].ToString(); ' Access the data by cell addressing Dim val As String = ws("Cell Address").ToString() $vbLabelText $csharpLabel 上面的代码中, ws是WorkSheet ,它是在步骤 2 中定义的。这是一种"简单"的方法,但您可以阅读更多内容并查看访问 Excel 文件数据的不同示例。 8. 如何在 C# 中解析 Excel 文件 在使用 Excel 电子表格进行应用程序构建时,我们经常需要根据数据分析结果,并且需要在 C# 中将 Excel 文件数据解析为所需的格式才能获得正确的结果。 在 C# 环境中,使用 IronXL 可以轻松地将数据解析成不同的格式; 请参阅以下步骤。 using IronXL; class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Parse Excel cell value into string string str_val = ws["B3"].Value.ToString(); // Parse Excel cell value into Int32 Int32 int32_val = ws["G3"].Int32Value; // Parse Excel cell value into Decimal decimal decimal_val = ws["E5"].DecimalValue; // Output parsed values to the console Console.WriteLine("Parse B3 Cell Value into String: {0}", str_val); Console.WriteLine("Parse G3 Cell Value into Int32: {0}", int32_val); Console.WriteLine("Parse E5 Cell Value into decimal: {0}", decimal_val); Console.ReadKey(); } } using IronXL; class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Parse Excel cell value into string string str_val = ws["B3"].Value.ToString(); // Parse Excel cell value into Int32 Int32 int32_val = ws["G3"].Int32Value; // Parse Excel cell value into Decimal decimal decimal_val = ws["E5"].DecimalValue; // Output parsed values to the console Console.WriteLine("Parse B3 Cell Value into String: {0}", str_val); Console.WriteLine("Parse G3 Cell Value into Int32: {0}", int32_val); Console.WriteLine("Parse E5 Cell Value into decimal: {0}", decimal_val); Console.ReadKey(); } } Imports IronXL Friend Class Program Shared Sub Main(ByVal args() As String) ' Load the workbook and access a specific worksheet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Parse Excel cell value into string Dim str_val As String = ws("B3").Value.ToString() ' Parse Excel cell value into Int32 Dim int32_val As Int32 = ws("G3").Int32Value ' Parse Excel cell value into Decimal Dim decimal_val As Decimal = ws("E5").DecimalValue ' Output parsed values to the console Console.WriteLine("Parse B3 Cell Value into String: {0}", str_val) Console.WriteLine("Parse G3 Cell Value into Int32: {0}", int32_val) Console.WriteLine("Parse E5 Cell Value into decimal: {0}", decimal_val) Console.ReadKey() End Sub End Class $vbLabelText $csharpLabel 9. 如何将Excel数据解析为数值和布尔值 现在我们来学习如何解析Excel文件数据。 首先,我们来看看如何处理 Excel 中的数值数据,然后看看如何将其解析成我们所需的格式。 C# 中读取 CSV 文件:教程,图 8:每种数据类型的汇总表 每种数据类型的汇总表 class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Parse Excel cell value into string string str_val = ws["B3"].Value.ToString(); // Parse Excel cell value into Int32 Int32 int32_val = ws["G3"].Int32Value; // Parse Excel cell value into Decimal decimal decimal_val = ws["E5"].DecimalValue; // Output parsed values to the console Console.WriteLine("Parse B3 Cell Value into String: {0}", str_val); Console.WriteLine("Parse G3 Cell Value into Int32: {0}", int32_val); Console.WriteLine("Parse E5 Cell Value into decimal: {0}", decimal_val); Console.ReadKey(); } } class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Parse Excel cell value into string string str_val = ws["B3"].Value.ToString(); // Parse Excel cell value into Int32 Int32 int32_val = ws["G3"].Int32Value; // Parse Excel cell value into Decimal decimal decimal_val = ws["E5"].DecimalValue; // Output parsed values to the console Console.WriteLine("Parse B3 Cell Value into String: {0}", str_val); Console.WriteLine("Parse G3 Cell Value into Int32: {0}", int32_val); Console.WriteLine("Parse E5 Cell Value into decimal: {0}", decimal_val); Console.ReadKey(); } } Friend Class Program Shared Sub Main(ByVal args() As String) ' Load the workbook and access a specific worksheet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Parse Excel cell value into string Dim str_val As String = ws("B3").Value.ToString() ' Parse Excel cell value into Int32 Dim int32_val As Int32 = ws("G3").Int32Value ' Parse Excel cell value into Decimal Dim decimal_val As Decimal = ws("E5").DecimalValue ' Output parsed values to the console Console.WriteLine("Parse B3 Cell Value into String: {0}", str_val) Console.WriteLine("Parse G3 Cell Value into Int32: {0}", int32_val) Console.WriteLine("Parse E5 Cell Value into decimal: {0}", decimal_val) Console.ReadKey() End Sub End Class $vbLabelText $csharpLabel 这段代码将显示以下输出: C# 中读取 CSV 文件:教程,图 9:带有正确数据类型的控制台输出 控制台输出包含正确的数据类型 我们可以在这里看到Excel文件sample.xlsx的值: C# 读取 CSV 文件教程,图 10:在 Excel 中显示正确的数据类型 在 Excel 中显示正确的数据类型 IronXL 提供了BoolValue函数,用于将 Excel 文件数据解析为布尔数据类型。 它的用法如下: // Access a cell value as a boolean bool Val = ws["Cell Address"].BoolValue; // Access a cell value as a boolean bool Val = ws["Cell Address"].BoolValue; ' Access a cell value as a boolean Dim Val As Boolean = ws("Cell Address").BoolValue $vbLabelText $csharpLabel 10. 如何将 Excel 文件解析为 C# 集合 class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Convert a range into an array var array = ws["B6:F6"].ToArray(); // Get the count of items in the array int item = array.Count(); // Get the first item as a string string total_items = array[0].Value.ToString(); // Output information about the array to the console Console.WriteLine("First item in the array: {0}", item); Console.WriteLine("Total items from B6 to F6: {0}", total_items); Console.ReadKey(); } } class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Convert a range into an array var array = ws["B6:F6"].ToArray(); // Get the count of items in the array int item = array.Count(); // Get the first item as a string string total_items = array[0].Value.ToString(); // Output information about the array to the console Console.WriteLine("First item in the array: {0}", item); Console.WriteLine("Total items from B6 to F6: {0}", total_items); Console.ReadKey(); } } Friend Class Program Shared Sub Main(ByVal args() As String) ' Load the workbook and access a specific worksheet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Convert a range into an array Dim array = ws("B6:F6").ToArray() ' Get the count of items in the array Dim item As Integer = array.Count() ' Get the first item as a string Dim total_items As String = array(0).Value.ToString() ' Output information about the array to the console Console.WriteLine("First item in the array: {0}", item) Console.WriteLine("Total items from B6 to F6: {0}", total_items) Console.ReadKey() End Sub End Class $vbLabelText $csharpLabel 10.1 如何将 Excel WorkSheet解析为数据表 IronXL 的一个出色功能是我们可以轻松地将特定的 Excel WorkSheet转换为数据表。 为此,我们可以使用 IronXL 的.ToDataTable()函数,如下所示: class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Parse Sheet1 of sample.xlsx file into DataTable // Setting 'true' makes the first row in Excel as the column names in DataTable DataTable dt = ws.ToDataTable(true); } } class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Parse Sheet1 of sample.xlsx file into DataTable // Setting 'true' makes the first row in Excel as the column names in DataTable DataTable dt = ws.ToDataTable(true); } } Friend Class Program Shared Sub Main(ByVal args() As String) ' Load the workbook and access a specific worksheet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Parse Sheet1 of sample.xlsx file into DataTable ' Setting 'true' makes the first row in Excel as the column names in DataTable Dim dt As DataTable = ws.ToDataTable(True) End Sub End Class $vbLabelText $csharpLabel 10.2 如何将 Excel 文件解析为数据集 如果我们想将完整的 Excel 文件解析为 DataSet,那么为此我们可以使用 IronXL 中的.ToDataSet()函数。 class Program { static void Main(string[] args) { // Load an entire workbook into a DataSet WorkBook wb = WorkBook.Load("sample.xlsx"); // Convert workbook to DataSet DataSet ds = wb.ToDataSet(); // We can also get a DataTable from the DataSet which corresponds to a WorkSheet DataTable dt = ds.Tables[0]; } } class Program { static void Main(string[] args) { // Load an entire workbook into a DataSet WorkBook wb = WorkBook.Load("sample.xlsx"); // Convert workbook to DataSet DataSet ds = wb.ToDataSet(); // We can also get a DataTable from the DataSet which corresponds to a WorkSheet DataTable dt = ds.Tables[0]; } } Friend Class Program Shared Sub Main(ByVal args() As String) ' Load an entire workbook into a DataSet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") ' Convert workbook to DataSet Dim ds As DataSet = wb.ToDataSet() ' We can also get a DataTable from the DataSet which corresponds to a WorkSheet Dim dt As DataTable = ds.Tables(0) End Sub End Class $vbLabelText $csharpLabel 10.3 读取特定范围内的 Excel 数据 IronXL 提供了一种智能方法来读取特定范围内的 Excel 文件数据。 该范围可以应用于行和列。 class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Get specified range values by loop foreach (var item in ws["B3:B8"]) { Console.WriteLine("Value is: {0}", item); } Console.ReadKey(); } } class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Get specified range values by loop foreach (var item in ws["B3:B8"]) { Console.WriteLine("Value is: {0}", item); } Console.ReadKey(); } } Friend Class Program Shared Sub Main(ByVal args() As String) ' Load the workbook and access a specific worksheet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Get specified range values by loop For Each item In ws("B3:B8") Console.WriteLine("Value is: {0}", item) Next item Console.ReadKey() End Sub End Class $vbLabelText $csharpLabel 上述代码显示以下输出: C# 读取 CSV 文件教程,图 11:控制台输出,访问 B3:B8 范围内的所有值 控制台输出以访问 B3:B8 范围内的所有值 并生成 Excel 文件 sample.xlsx 中的值: C# 读取 CSV 文件教程,图 12:示例文件 sample.xlsx 的数据展示 示例文件 sample.xlsx 的数据显示 此外,IronXL 还兼容许多 Excel 方法,可用于与单元格交互,包括样式和边框、数学函数、条件格式或根据可用数据创建图表。 11. 如何读取 Excel 文件中的布尔数据 在应用程序开发中,我们需要根据 Excel 文件中的布尔数据类型做出决策。 class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Traverse a range and output boolean values foreach (var item in ws["G1:G10"]) { Console.WriteLine("Condition is: {0}", item.BoolValue); } Console.ReadKey(); } } class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("sample.xlsx"); WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Traverse a range and output boolean values foreach (var item in ws["G1:G10"]) { Console.WriteLine("Condition is: {0}", item.BoolValue); } Console.ReadKey(); } } Friend Class Program Shared Sub Main(ByVal args() As String) ' Load the workbook and access a specific worksheet Dim wb As WorkBook = WorkBook.Load("sample.xlsx") Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Traverse a range and output boolean values For Each item In ws("G1:G10") Console.WriteLine("Condition is: {0}", item.BoolValue) Next item Console.ReadKey() End Sub End Class $vbLabelText $csharpLabel 由此,我们得到以下输出: C# 读取 CSV 文件教程,图 13:获取布尔数据的控制台输出 获取布尔数据时的控制台输出 Excel 文件 sample.xlsx,其中包含 C1 到 C10 的值: C# 中读取 CSV 文件:教程,图 14:Excel 示例,可与控制台输出进行比较 用于与控制台输出进行比较的 Excel 示例 12. 如何阅读完整的Excel工作表 利用行和列索引可以轻松读取完整的 Excel 工作表。 为此,我们使用两个循环:一个用于遍历所有行,另一个用于遍历特定行的所有列。 这样我们就可以轻松获取整个 Excel 工作表中所有单元格的值。 class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("Weather.xlsx"); // Your Excel File Name WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Traverse all rows of Excel WorkSheet for (int i = 0; i < ws.Rows.Count(); i++) { // Traverse all columns of specific Row for (int j = 0; j < ws.Columns.Count(); j++) { // Get the values string val = ws.Rows[i].Columns[j].Value.ToString(); Console.WriteLine("Value of Row {0} and Column {1} is: {2}", i, j, val); } } Console.ReadKey(); } } class Program { static void Main(string[] args) { // Load the workbook and access a specific worksheet WorkBook wb = WorkBook.Load("Weather.xlsx"); // Your Excel File Name WorkSheet ws = wb.GetWorkSheet("Sheet1"); // Traverse all rows of Excel WorkSheet for (int i = 0; i < ws.Rows.Count(); i++) { // Traverse all columns of specific Row for (int j = 0; j < ws.Columns.Count(); j++) { // Get the values string val = ws.Rows[i].Columns[j].Value.ToString(); Console.WriteLine("Value of Row {0} and Column {1} is: {2}", i, j, val); } } Console.ReadKey(); } } Friend Class Program Shared Sub Main(ByVal args() As String) ' Load the workbook and access a specific worksheet Dim wb As WorkBook = WorkBook.Load("Weather.xlsx") ' Your Excel File Name Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1") ' Traverse all rows of Excel WorkSheet For i As Integer = 0 To ws.Rows.Count() - 1 ' Traverse all columns of specific Row For j As Integer = 0 To ws.Columns.Count() - 1 ' Get the values Dim val As String = ws.Rows(i).Columns(j).Value.ToString() Console.WriteLine("Value of Row {0} and Column {1} is: {2}", i, j, val) Next j Next i Console.ReadKey() End Sub End Class $vbLabelText $csharpLabel C# 中读取 CSV 文件:教程,图 15:读取所有值后的控制台输出 读取所有值的控制台输出 13. 如何在不使用互操作的情况下读取 Excel 文件 IronXL 是一个适用于 C# 和 .NET 的 Excel 库,它允许开发人员无需使用 Microsoft.Office.Interop.Excel 即可从XLS 和 XLSX文档读取和编辑 Excel 数据。 该 API 使我们能够直观地创建、读取、操作、保存和导出 Excel 文件,用于: .NET Framework 4.5+ .NET Core 2+ .NET 标准 Xamarin Windows Mobile 单声道 和 Azure 云托管 Blazor .NET MAUI 添加以下命名空间: using IronXL; using System; using System.Linq; using IronXL; using System; using System.Linq; Imports IronXL Imports System Imports System.Linq $vbLabelText $csharpLabel 现在在主函数中编写以下代码。 class Program { static void Main(string[] args) { // Load an Excel file and access the first worksheet WorkBook workbook = WorkBook.Load("Weather.xlsx"); WorkSheet sheet = workbook.WorkSheets.First(); // Select cells easily in Excel notation and return the calculated value int cellValue = sheet["A2"].IntValue; // Read from ranges of cells elegantly foreach (var cell in sheet["A2:A10"]) { Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text); } } } class Program { static void Main(string[] args) { // Load an Excel file and access the first worksheet WorkBook workbook = WorkBook.Load("Weather.xlsx"); WorkSheet sheet = workbook.WorkSheets.First(); // Select cells easily in Excel notation and return the calculated value int cellValue = sheet["A2"].IntValue; // Read from ranges of cells elegantly foreach (var cell in sheet["A2:A10"]) { Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text); } } } Friend Class Program Shared Sub Main(ByVal args() As String) ' Load an Excel file and access the first worksheet Dim workbook As WorkBook = WorkBook.Load("Weather.xlsx") Dim sheet As WorkSheet = workbook.WorkSheets.First() ' Select cells easily in Excel notation and return the calculated value Dim cellValue As Integer = sheet("A2").IntValue ' Read from ranges of cells elegantly For Each cell In sheet("A2:A10") Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text) Next cell End Sub End Class $vbLabelText $csharpLabel C# 读取 CSV 文件教程,图 16:每个单元格的控制台输出 每个单元格的控制台输出 IronXL 还完全支持 ASP.NET、MVC、Windows、macOS、Linux、iOS 和 Android 移动应用程序开发。 14. 结论和 Iron XL 特别优惠 除了在 C# 中解析 CSV 文件外,IronXL 只需两行代码即可将 CSV 文件转换为 Excel 文件! 使用 C# 或 VB.NET,无需互操作即可轻松使用 IronXL 的 Excel API。您可以读取、编辑和创建 Excel 电子表格,或处理其他 Excel 格式,例如XLS/XLSX/CSV/TSV 。 借助多种框架的支持,您可以花两件产品的价格购买五件产品。 点击我们的定价页面了解更多信息。 C# 中读取 CSV 文件:教程,图 17:Iron Suite 的 5 个产品 Iron Suite 的 5 款产品 常见问题解答 我如何在 C# 中读取 CSV 文件? 要在 C# 中读取 CSV 文件,您可以通过在 Visual Studio 中通过 NuGet 安装 IronXL 来使用该库。安装后,使用 WorkBook.LoadCSV 方法来加载和解释 CSV 文件。 什么是 CSV?为什么在 C# 中处理会变得复杂? CSV 是一种简单的数据格式,但由于分隔符的变化,处理起来可能很复杂。IronXL 简化了 C# 项目中 CSV 文件的读取和解析。 我可以使用 C# 将 CSV 文件转换为 Excel 吗? 可以,IronXL 允许您通过加载 CSV 并使用 WorkBook.SaveAs 方法保存来将 CSV 文件转换为 XLS 或 XLSX 等 Excel 格式。 如何在 C# 项目中安装 IronXL? 您可以通过在 Visual Studio 中使用 NuGet 包管理器安装 IronXL。搜索 'IronXL.Excel' 并将其添加到您的项目中,以开始处理 Excel 文件。 是否可以在 C# 中将 Excel 单元格数据解析为特定数据类型? 可以,使用 IronXL,您可以使用 Int32Value 和 BoolValue 等方法将 Excel 单元格值解析为数值和布尔等特定数据类型。 如何在 C# 中读取 Excel 工作表中特定范围内的单元格数据? 使用 IronXL,您可以通过循环迭代范围并通过 IronXL 的索引功能访问单元格值来读取特定单元格的数据。 如何在 C# 中将 Excel 工作表转换为 DataTable? 您可以使用 IronXL 的 WorkSheet.ToDataTable 方法将 Excel 工作表转换为 DataTable,该方法可高效地将工作表解析为 DataTable 对象以供数据操作。 我需要 Microsoft Office Interop 来以编程方式读取 Excel 文件吗? 不,使用 IronXL,您无需 Microsoft Office Interop 即可读取和操作 Excel 文件,使其成为独立且高效的解决方案。 使用 IronXL 处理 Excel 和 CSV 文件的优势是什么? IronXL 提供简单的安装,无需依赖 Interop,支持多种 Excel 格式,并且与各种 .NET 框架兼容,从而提高处理 CSV 和 Excel 文件的生产力。 如何在 C# 中读取完整的 Excel 工作表? 要使用 IronXL 读取完整的 Excel 工作表,您可以使用嵌套循环遍历所有行和列,并使用 IronXL 的方法提取单元格值。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已发布十二月 19, 2025 如何使用 C# Interop 与 IronXL.Excel 在 Excel 中创建透视表 无需 Office 依赖在 C# 中构建 Excel 数据透视表。IronXL 提供强大的数据处理功能,用于创建透视风格的报告,无需 Excel Interop 复杂化。 阅读更多 已发布十二月 18, 2025 C# 使用 IronXL.Excel 将带列标题的 DataGridView 导出到 Excel 学习如何在将DataGridView数据导出到Excel时保留列头。使用IronXL库的C#逐步教程。 阅读更多 已发布十二月 18, 2025 如何在 C# 中使用 IronXL 创建 Excel 报告 在 C# 中使用 IronXL 进行 Excel 报告生成。学习构建具有格式、公式和数据库集成的专业报告。 阅读更多 如何在 Excel 中突出显示每隔一行如何在 Excel 中锁定单元格...
已发布十二月 19, 2025 如何使用 C# Interop 与 IronXL.Excel 在 Excel 中创建透视表 无需 Office 依赖在 C# 中构建 Excel 数据透视表。IronXL 提供强大的数据处理功能,用于创建透视风格的报告,无需 Excel Interop 复杂化。 阅读更多
已发布十二月 18, 2025 C# 使用 IronXL.Excel 将带列标题的 DataGridView 导出到 Excel 学习如何在将DataGridView数据导出到Excel时保留列头。使用IronXL库的C#逐步教程。 阅读更多
已发布十二月 18, 2025 如何在 C# 中使用 IronXL 创建 Excel 报告 在 C# 中使用 IronXL 进行 Excel 报告生成。学习构建具有格式、公式和数据库集成的专业报告。 阅读更多