C# 读取Excel文件与XLSX文件操作完整指南
要在 C# 中读取Excel文件(.xlsx 格式),可以使用 IronXL 的 WorkBook.Load 方法打开工作簿并访问工作表,以实现Excel数据提取、执行计算并以编程方式转换为 DataTable 或 DataSet 格式。
快速入门:轻松加载工作簿并访问工作表
使用IronXL,您只需一行代码即可通过 WorkBook.Load 方法加载 XLSX 文件。然后,您可以立即访问其第一个工作表或指定工作表,并开始读取单元格值。
- 为您的项目选择 IronXL
- 加载 `WorkBook`
- 从 `WorkSheet` 中访问数据
- 应用求和、最小值和最大值等函数
- 将 `WorkSheet` 作为 DataTable、DataSet 等读取
如何为我的项目获取 IronXL?
在您的项目中使用 IronXL,可以以简单的方式在 C# 中处理 Excel 文件格式。 你可以通过直接下载安装 IronXL ,或者也可以使用NuGet Install for Visual Studio 。 该软件可免费用于开发。
Install-Package IronXL.Excel
在深入阅读 XLSX 文件之前,请浏览 全面的 IronXL 文档,了解所有可用功能。 IronXL.Excel 支持 .xls 和 .xlsx 两种格式,因此可通用于传统和现代 Excel 文件。
如何使用教程
如何加载工作簿?
WorkBook 是IronXL的类,其对象提供对 Excel 文件及其所有功能的完全访问权限。 例如,要访问 Excel 文件,请使用以下代码:
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-load-workbook.cs
using IronXL;
// Load the workbook
WorkBook workBook = WorkBook.Load("sample.xlsx"); // Excel file path
Imports IronXL
' Load the workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx") ' Excel file path
为什么要使用 WorkBook.Load() 方法?
在上面的代码中,WorkBook.Load() 函数将 sample.xlsx 加载到 workBook 中。 通过访问 Excel 文件的特定工作表,可以对 workBook 执行任何类型的操作。WorkBook.Load 方法会自动检测文件格式,无论是 XLS、XLSX、XLSM、XLTX 还是 CSV。有关更高级的加载场景,请参阅电子表格加载的详细指南。
如何访问特定工作表?
要访问 Excel 文件的特定 WorkSheet, IronXL提供了 WorkSheet 类。 它可以以多种不同的方式使用:
访问工作表的不同方法有哪些?
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-get-worksheet.cs
using IronXL;
// Access sheet by name
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
Imports IronXL
' Access sheet by name
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
workBook 是上面部分声明的 WorkBook。
或者
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-worksheet-index.cs
using IronXL;
// Access sheet by index
WorkSheet workSheet = workBook.WorkSheets[0];
Imports IronXL
' Access sheet by index
Dim workSheet As WorkSheet = workBook.WorkSheets(0)
或者
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-default-worksheet.cs
using IronXL;
// Access the default worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;
Imports IronXL
' Access the default worksheet
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
或者
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-first-worksheet.cs
using IronXL;
using System.Linq;
// Access the first worksheet
WorkSheet workSheet = workBook.WorkSheets.First();
Imports IronXL
Imports System.Linq
' Access the first worksheet
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
或者
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-first-or-default-worksheet.cs
using IronXL;
using System.Linq;
// Access the first or default worksheet
WorkSheet workSheet = workBook.WorkSheets.FirstOrDefault();
Imports IronXL
Imports System.Linq
' Access the first or default worksheet
Dim workSheet As WorkSheet = workBook.WorkSheets.FirstOrDefault()
何时应使用每种工作表访问方法?
每种方法都有其理想的使用案例:
GetWorkSheet("name"):当您知道确切的工作表名称时WorkSheets[index]:用于以编程方式遍历工作表DefaultWorkSheet:处理单页文件时快速访问First()或FirstOrDefault():当工作表名称可能更改时的安全选项
获取 ExcelSheet workSheet 后,您可以从中获取任何类型的数据并对其执行所有 Excel 功能。 有关更复杂的工作表操作,请参阅用 C# 打开 Excel 工作表指南。
如何从工作表中访问数据?
可以通过以下步骤从 Excel 表格 workSheet 访问数据:
我可以从单元格中读取哪些数据类型?
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-get-data.cs
using IronXL;
// Accessing data as a string
string dataString = workSheet["A1"].ToString();
// Accessing data as an integer
int dataInt = workSheet["B1"].Int32Value;
Imports IronXL
' Accessing data as a string
Dim dataString As String = workSheet("A1").ToString()
' Accessing data as an integer
Dim dataInt As Integer = workSheet("B1").Int32Value
IronXL 为不同的数据类型提供了各种值访问器:
StringValue:用于文本数据Int32Value: 对于整数DoubleValue: 用于十进制DateTimeValue:用于日期BoolValue: 用于真/假值
如何同时阅读多个单元格?
您还可以从特定列的多个单元格中获取数据:
foreach (var cell in workSheet["A2:A10"])
{
Console.WriteLine("Value is: {0}", cell.Text);
}
foreach (var cell in workSheet["A2:A10"])
{
Console.WriteLine("Value is: {0}", cell.Text);
}
For Each cell In workSheet("A2:A10")
Console.WriteLine("Value is: {0}", cell.Text)
Next cell
这将显示从单元格 A2 到 A10 的值。 有关更多高级范围选择技术,请访问 选择范围教程。
完整的实施是什么样的?
此处提供了上述具体内容的完整代码示例:
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-log-data.cs
using IronXL;
using System;
// Load an Excel file
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
// Specify the range
foreach (var cell in workSheet["B2:B10"])
{
Console.WriteLine("Value is: {0}", cell.Text);
}
Imports IronXL
Imports System
' Load an Excel file
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
' Specify the range
For Each cell In workSheet("B2:B10")
Console.WriteLine("Value is: {0}", cell.Text)
Next
结果显示如下:
使用 Excel 文件 Sample.xlsx:
这些方法展示了在项目中使用 Excel 文件数据是多么轻松自如。 有关不使用 Interop 阅读 Excel 文件的实用示例,请浏览 read Excel 示例。
如何对数据执行函数?
使用以下代码,通过应用 Sum、Min 或 Max 等聚合函数,从 Excel 中访问筛选后的数据:
哪些聚合函数可用?
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-aggregate-function.cs
using IronXL;
// Apply aggregate functions
decimal sum = workSheet["G2:G10"].Sum(); // Sum of cells from G2 to G10
decimal min = workSheet["G2:G10"].Min(); // Minimum value in cells from G2 to G10
decimal max = workSheet["G2:G10"].Max(); // Maximum value in cells from G2 to G10
Imports IronXL
' Apply aggregate functions
Dim sum As Decimal = workSheet("G2:G10").Sum() ' Sum of cells from G2 to G10
Dim min As Decimal = workSheet("G2:G10").Min() ' Minimum value in cells from G2 to G10
Dim max As Decimal = workSheet("G2:G10").Max() ' Maximum value in cells from G2 to G10
IronXL 支持众多数学函数,包括
Average(): 计算平均值Count(): 统计非空单元格数量CountIf():统计符合条件的单元格数量Median():查找中间值StdDev():计算标准差
如何同时实现多个功能?
如需了解更多详情,请查看我们的深入教程《如何编写 C# Excel 文件》,其中包含聚合函数的具体内容。 您还可以浏览 IronXL.Excel 中提供的数学函数的完整列表。
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-min-max.cs
using IronXL;
using System;
// Load the Excel workbook
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Get the specified WorkSheet
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
// Calculate sum, minimum, and maximum for a range of cells
decimal sum = workSheet["G2:G10"].Sum();
decimal min = workSheet["G2:G10"].Min();
decimal max = workSheet["G2:G10"].Max();
// Output results
Console.WriteLine("Sum is: {0}", sum);
Console.WriteLine("Min is: {0}", min);
Console.WriteLine("Max is: {0}", max);
Imports IronXL
Imports System
' Load the Excel workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
' Get the specified WorkSheet
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
' Calculate sum, minimum, and maximum for a range of cells
Dim sum As Decimal = workSheet("G2:G10").Sum()
Dim min As Decimal = workSheet("G2:G10").Min()
Dim max As Decimal = workSheet("G2:G10").Max()
' Output results
Console.WriteLine("Sum is: {0}", sum)
Console.WriteLine("Min is: {0}", min)
Console.WriteLine("Max is: {0}", max)
这段代码会显示以下输出:
这就是 Excel 文件 Sample.xlsx 的样子:
如何将 Excel 工作表读取为数据表?
使用IronXL,可以轻松地将 Excel WorkSheet 作为数据表进行操作。 当您需要将 Excel 数据与现有数据处理管道集成或将数据绑定到 UI 控件时,该功能尤其有用。
基本转换方法是什么?
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-datatable.cs
using IronXL;
using System.Data;
// Convert worksheet to DataTable
DataTable dt = workSheet.ToDataTable();
Imports IronXL
Imports System.Data
' Convert worksheet to DataTable
Dim dt As DataTable = workSheet.ToDataTable()
如何将第一行用作列标题?
将 ExcelSheet 的第一行用作数据表 ColumnName:
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-datatable-header.cs
using IronXL;
using System.Data;
// Convert worksheet to DataTable with the first row as column names
DataTable dt = workSheet.ToDataTable(true);
Imports IronXL
Imports System.Data
' Convert worksheet to DataTable with the first row as column names
Dim dt As DataTable = workSheet.ToDataTable(True)
布尔参数 ToDataTable() 将第一行设置为 DataTable 的列名。 其默认值为 False。 这在处理包含标题的结构化数据时尤其有用。
如何遍历 DataTable?
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-print-datatable.cs
using IronXL;
using System;
using System.Data;
// Load the Excel workbook
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Get the specified WorkSheet
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
// Convert WorkSheet to DataTable
DataTable dt = workSheet.ToDataTable(true); // Use first row as column names
// Iterate through rows and columns and display data
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();
}
Imports IronXL
Imports System
Imports System.Data
' Load the Excel workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
' Get the specified WorkSheet
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
' Convert WorkSheet to DataTable
Dim dt As DataTable = workSheet.ToDataTable(True) ' Use first row as column names
' Iterate through rows and columns and display data
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
Console.WriteLine()
Next
使用上述代码,可以访问并根据需要使用 WorkSheet 的每个单元格值。 有关 DataTable 的更多高级操作,请参阅导入和导出为 DataSet 指南。
如何将 Excel 文件读取为数据集?
IronXL提供了一个简单的功能,可以将完整的 Excel 文件 (WorkBook) 用作数据集。 使用 ToDataSet 方法将整个工作簿转换为 DataSet。
在这个例子中,我们将看到如何将 Excel 文件用作数据集。
如何将工作簿转换为 DataSet?
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-file-excel-to-dataset.cs
using IronXL;
using System;
using System.Data;
// Load the Excel workbook
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Convert the WorkBook to a DataSet
DataSet ds = workBook.ToDataSet();
// Iterate through tables in the DataSet and display table names
foreach (DataTable dt in ds.Tables)
{
Console.WriteLine(dt.TableName);
}
Imports IronXL
Imports System
Imports System.Data
' Load the Excel workbook
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
' Convert the WorkBook to a DataSet
Dim ds As DataSet = workBook.ToDataSet()
' Iterate through tables in the DataSet and display table names
For Each dt As DataTable In ds.Tables
Console.WriteLine(dt.TableName)
Next
上述代码的输出结果如下:
Excel 文件 Sample.xlsx 的内容如下:
如何在所有工作表中访问每个单元格的值?
在上面的示例中,我们可以轻松地将 Excel 文件解析为 DataSet,并将 Excel 文件中的每个 WorkSheet 元素作为 DataTable 进行操作。 深入了解如何将 Excel 作为数据集进行解析,这里提供了代码示例。
让我们再来看一个例子,了解如何访问所有 Excel 工作表中每个单元格的值。 在这里,我们可以访问 Excel 文件中每个 WorkSheet 的每个单元格的值。
:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-all-excel-sheets.cs
// 该代码片段不可用!
' 该代码片段不可用!
以上述示例为例,可以方便地访问 Excel 文件中每个工作表的每个单元格的值。这种方法在处理数据分布在不同工作表中的多工作表工作簿时尤其有用。
有关如何在不进行互操作的情况下读取 Excel 文件的更多信息,请查看此处的代码。 API 参考文档在 IronXL API 参考中提供了有关所有可用方法和属性的全面详细信息。
教程快速访问
请参阅文档,了解有关 IronXL 的功能、类、方法字段、命名空间和枚举的更多信息。
IronXL API 参考常见问题解答
如何用 C# 阅读 XLSX 文件?
要在 C# 中读取 XLSX 文件,请使用 IronXL 的 WorkBook.Load 方法。只需使用 IronXL.WorkBook.Load("your-file.xlsx") 加载 Excel 文件,然后访问工作表以读取单元格数据、执行计算,并以编程方式转换为 DataTable 或 DataSet 格式。
加载 Excel 文件时支持哪些文件格式?
IronXL.Excel 支持多种 Excel 文件格式,包括 .xls、.xlsx、.xlsm、.xltx 和 .csv 文件。WorkBook.Load 方法可自动检测文件格式,使其既适用于传统 Excel 文件,也适用于现代 Excel 文件。
如何为我的 C# 项目安装 Excel 阅读库?
您可以通过直接下载或通过 Visual Studio 的 NuGet Install 安装 IronXL。该软件用于开发目的是免费的,它提供了一种在 C# 中处理 Excel 文件格式的简单方法。
访问特定工作表的不同方法是什么?
IronXL 提供了多种访问工作表的方法:您可以使用 workBook.GetWorkSheet("SheetName") 按名称访问,使用 workBook.WorkSheets[0] 按索引访问,或者使用 workBook.WorkSheets.First() 获取第一个工作表。
加载 Excel 数据后,能否对其进行计算?
是的,用 IronXL 加载 XLSX 文件后,您可以对数据应用各种函数,如 Sum、Min 和 Max。该库通过 WorkBook 对象提供对 Excel 文件功能的全面访问。
是否可以将 Excel 工作表数据转换为其他格式?
是的,IronXL 允许您读取 WorkSheet 并将其转换为各种格式,包括 DataTable、DataSet 等。这样就可以轻松地将 Excel 数据集成到您的 C# 应用程序中。







