C# 读取 XLSX 文件

This article was translated from English: Does it need improvement?
Translated
View the article in English

在使用各种 Excel 格式时,通常需要读取数据并以编程方式对其进行操作。 在接下来的教程中,我们将学习如何使用便捷的工具 IronXL 在 C# 中读取 Excel 电子表格中的数据。

快速入门:轻松加载工作簿并访问工作表

使用 IronXL,您只需一行代码即可通过 WorkBook.Load 方法加载 XLSX 文件。然后,您可以立即访问其第一个工作表或指定工作表,并开始读取单元格值——快速、流畅地读取 Excel 文件。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronXL

    PM > Install-Package IronXL.Excel

  2. 复制并运行这段代码。

    IronXL.WorkBook workbook = IronXL.WorkBook.Load("your-file.xlsx");
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronXL,免费试用!
    arrow pointer

读取 .XLSX 文件(C#)

  • 为您的项目选择 IronXL
  • 加载工作簿
  • 从工作表中访问数据
  • 应用求和、最小值和最大值等函数
  • 将工作表读取为数据表、数据集等
How To Work related to C# 读取 XLSX 文件

1. 为您的项目选择 IronXL

在您的项目中使用 IronXL,可以以简单的方式在 C# 中处理 Excel 文件格式。 你可以通过直接下载安装 IronXL ,或者也可以使用NuGet Install for Visual Studio 。 该软件可免费用于开发。

Install-Package IronXL.Excel

如何使用教程

2. 加载工作簿

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
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

在上面的代码中, WorkBook.Load()函数将sample.xlsx加载到workBook中。 通过访问 Excel 文件的特定工作表,可以对workBook执行任何类型的功能。


3. 访问特定工作表

要访问 Excel 文件的特定工作表,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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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];
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

或者

: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;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

或者

: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();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

或者

: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();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

获取 ExcelSheet workSheet后,您可以从中获取任何类型的数据,并对其执行所有 Excel 功能。


4. 从工作表中访问数据

可以通过以下步骤从 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;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

也可以从特定列的多个单元格中获取数据。

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
$vbLabelText   $csharpLabel

这将显示单元格A2A10的值。

这里提供了一个包含上述具体细节的完整代码示例。

: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);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

它将显示以下结果:

Doc3 Input1 related to 4. 从工作表中访问数据

使用 Excel 文件Sample.xlsx

Doc3 1 related to 4. 从工作表中访问数据

我们可以看到,使用这些方法在项目中使用 Excel 文件数据是多么轻松便捷。


5. 对数据执行函数

使用以下代码,通过应用 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
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

如果您想了解更多详情,请查看我们关于如何编写 C# 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);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

这段代码将显示以下输出:

Doc3 Output2 related to 5. 对数据执行函数

这就是 Excel 文件Sample.xlsx样子:

Doc3 2 related to 5. 对数据执行函数

6. 将 Excel 工作表读取为数据表

使用 IronXL,将 Excel 工作表作为数据表进行操作非常容易。

: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();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

如果我们想使用 Excel 工作表的第一行作为数据表列名,那么:

: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);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

因此, ToDataTable()的布尔参数将第一行设置为 DataTable 的列名。 默认值为False

: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();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

使用上述代码,可以访问工作表中的每个单元格值并根据需要使用。


7. 将 Excel 文件读取为数据集

IronXL 提供了一个非常简单的功能,可以将完整的 Excel 文件( WorkBook )用作数据集。 使用 ToDataSet 方法将整个工作簿转换为 DataSet。 在这个例子中,我们将看到如何将 Excel 文件用作数据集。

: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);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

上述代码的输出结果如下所示:

Doc10 Output2 related to 7. 将 Excel 文件读取为数据集

Excel 文件Sample.xlsx将如下所示:

Doc10 2 related to 7. 将 Excel 文件读取为数据集

在上面的例子中,我们可以看到,我们可以轻松地将 Excel 文件解析为 DataSet,并将其与 Excel 文件中的每个工作表一起用作 DataTable。 点击此处,深入了解如何将 Excel 解析为数据集,并查看代码示例。

让我们再来看一个例子,了解如何访问所有 Excel 工作表中每个单元格的值。 在这里,我们可以访问 Excel 文件中每个工作表的每个单元格的值。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-all-excel-sheets.cs
// 该代码片段不可用!
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

以上述示例为例,访问 Excel 文件中每个工作表的每个单元格的值非常方便。

有关如何在不使用 Interop 的情况下读取 Excel 文件的更多信息,请查看此处的代码。


教程快速访问

IronXL API 参考

请参阅文档,了解有关 IronXL 的功能、类、方法字段、命名空间和枚举的更多信息。

IronXL API 参考
Documentation related to 教程快速访问

常见问题解答

如何在 C# 中读取 XLSX 文件而不使用 Interop?

要在 C# 中读取 XLSX 文件而不使用 Interop,可以使用 IronXL 库。安装 IronXL 后,可以使用 WorkBook.Load() 方法加载 Excel 工作簿并访问其内容。

如何在 C# 中加载 Excel 工作簿?

可以在 C# 中通过调用 WorkBook.Load('yourfile.xlsx') 使用 IronXL 加载 Excel 工作簿,这将打开指定的文件以供操作。

有哪些方法可以用于访问 Excel 文件中的工作表?

在 IronXL 中,可以通过名称或索引使用 GetWorkSheet 方法以及 DefaultWorkSheetFirst 等属性访问工作表。

如何用 C# 操作 Excel 工作表中的数据?

可以在 C# 中使用 IronXL 操作 Excel 工作表中的数据,通过 ws['A1'].ToString() 这样的语法访问单元格值(用于字符串),或 ws['B1'].Int32Value(用于整数),并在单元格范围内应用函数如 Sum。

可以在 C# 中对 Excel 数据进行聚合操作吗?

是的,IronXL 允许在 C# 中使用指定单元格范围上的 Sum()Min()Max() 方法对 Excel 数据执行聚合操作。

能否将 Excel 工作表转换为 DataTable?

是的,可以在 C# 中使用 IronXL 的 ToDataTable() 方法将 Excel 工作表转换为 DataTable,并且可以选择将第一行作为列名处理。

如何在 C# 中将 Excel 工作簿用于 DataSet?

使用 IronXL,可以通过调用 ToDataSet() 方法将 Excel 工作簿用作 DataSet,从而实现全面的数据操作。

在 C# 中使用库进行 Excel 文件操作有哪些优势?

使用 IronXL 在 C# 中进行 Excel 文件操作提供了简便和高效的优点,支持各种 Excel 格式,能够对数据进行操作,并提供将工作表转换为 DataTable 等功能。

在哪里可以找到更多关于使用 IronXL 的资源?

您可以在 IronXL 的 API 参考页面找到更多资源和文档,其中包含有关其功能、类和方法的详细信息。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 1,738,553 | Version: 2025.11 刚刚发布