C## 阅读 XLSX 文件

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

要在C#中读取XLSX文件,使用IronXL的DataSet格式。

快速开始:加载工作簿并轻松访问工作表

使用IronXL,您可以在一行代码中使用WorkBook.Load方法加载XLSX文件。然后立即访问其第一个或命名的工作表并开始读取单元格值。

  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronXL.Excel

    PM > Install-Package IronXL.Excel
  2. 复制并运行这段代码。

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

    通过免费试用立即在您的项目中开始使用IronXL

    arrow pointer

读取 .XLSX 文件(C#)

  • 为您的项目选择 IronXL
  • 加载 WorkBook
  • WorkSheet 中访问数据
  • 应用求和、最小值和最大值等函数
  • WorkSheet 作为 DataTable、DataSet 等读取
How To Work related to C## 阅读 XLSX 文件

如何为我的项目获取 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
$vbLabelText   $csharpLabel

为什么使用WorkBook.Load()方法?

在上述代码中,WorkBook。 通过访问Excel文件的特定Load()方法自动检测文件格式,无论是XLS、XLSX、XLSM、XLTX还是CSV。如需更高级的加载场景,请查看加载电子表格的详细指南。


如何访问特定工作表?

要访问Excel文件的特定WorkBook类。 它可以以多种不同的方式使用:

访问工作表的不同方法有哪些?

: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")
$vbLabelText   $csharpLabel

WorkSheet

或者

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

或者

WorkBook.Load()

或者

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

或者

sample.xlsx

或者

: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()
$vbLabelText   $csharpLabel

或者

workBook

或者

: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()
$vbLabelText   $csharpLabel

或者

workBook

或者

WorkBook.Load

或者

WorkSheet

或者

WorkSheet

或者

workBook

或者

WorkBook

何时应使用每种工作表访问方法?

每种方法都有其理想的使用案例:

  • GetWorkSheet("name"):当您知道确切的工作表名称时
  • WorkSheets[index]:用于以编程方式遍历工作表
  • DefaultWorkSheet:处理单个工作表文件时的快速访问
  • FirstOrDefault():当工作表名称可能更改时的安全选项

在获得ExcelSheet workSheet之后,您可以从中获取任何类型的数据,并在其上执行所有Excel功能。 有关更复杂的工作表操作,请参阅用 C# 打开 Excel 工作表指南。


如何从工作表中访问数据?

可以通过该过程从ExcelSheet 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
$vbLabelText   $csharpLabel

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

这会显示从单元格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
$vbLabelText   $csharpLabel

结果显示如下:

控制台输出显示提取的工作表数据,包括政府、私营、中型市场和渠道合作伙伴值

使用Excel文件Sample.xlsx

包含业务数据的 Excel 电子表格,显示 16 行中的细分市场、国家、产品和折扣段列

这些方法展示了在项目中使用 Excel 文件数据是多么轻松自如。 有关不使用 Interop 阅读 Excel 文件的实用示例,请浏览 read Excel 示例


如何对数据执行函数?

通过应用如Max等聚合函数,可以从Excel WorkSheet中访问过滤数据,使用以下代码:

哪些聚合函数可用?

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

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

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

显示数据分析结果的终端:黑色背景上的总和=482,最小值=12,最大值=350

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

包含销售数据的 Excel 电子表格,显示多个行中的细分市场、国家、产品、销售单位和定价

如何将 Excel 工作表读取为数据表?

使用IronXL,可以轻松将Excel DataTable。 当您需要将 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()
$vbLabelText   $csharpLabel

如何将第一行用作列标题?

要将DataTable 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)
$vbLabelText   $csharpLabel

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

使用上述代码,可以按需访问并使用WorkSheet的每个单元格值。 有关更高级的DataTable操作,请参阅导入和导出为DataSet的指南。


如何将 Excel 文件读取为数据集?

IronXL提供一个简单的函数,以便将完整的Excel文件(DataSet。 使用DataSet
在此示例中,我们将了解如何将Excel文件用作DataSet

如何将工作簿转换为 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
$vbLabelText   $csharpLabel

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

损坏或不完整的截图,仅显示 Sheet1、Sheet2 和 Sheet3 标签

并且Excel文件Sample.xlsx看起来如下:

(center content omitted for brevity)

如何在所有工作表中访问每个单元格的值?

在上面的例子中,我们可以轻松地将Excel文件解析为DataTable。 深入了解如何将 Excel 作为数据集进行解析,这里提供了代码示例。

让我们再看一个例子,看看如何访问所有ExcelSheets的每个单元格值。 在这里,我们可以访问Excel文件每个ExcelSheet的每个单元格值。

:path=/static-assets/excel/content-code-examples/how-to/c-sharp-read-xlsx-all-excel-sheets.cs
// 该代码片段不可用!
' 该代码片段不可用!
$vbLabelText   $csharpLabel

使用上述示例,方便地访问Excel文件中每个ExcelSheet的每个单元格值。这种方法在处理多工作簿数据分布于不同选项卡时特别有用。

有关如何在不进行互操作的情况下读取 Excel 文件的更多信息,请查看此处的代码。 API 参考文档在 IronXL API 参考中提供了有关所有可用方法和属性的全面详细信息。


教程快速访问

IronXL API 参考

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

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

WorkSheet

WorkSheet

WorkSheet

常见问题解答

如何用 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# 应用程序中。

Curtis Chau
技术作家

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

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

准备开始了吗?
Nuget 下载 2,052,917 | 版本: 2026.6 just released
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronXL.Excel
运行示例 观看您的数据变成电子表格。