跳至页脚内容
使用 IRONXL

如何在 C# 中打开 Excel 文件

本教程将使用 IronXL 作为主要工具,在 C# 项目中打开和读取 Excel 文件。

IronXL Excel库

IronXL是一个 .NET 库,它优先考虑用户的易用性、准确性和速度。 它可以帮助您以闪电般的速度打开、读取、创建和编辑 Excel 文件,并且不会出现任何错误。 它无需 MS Office Interop 即可运行,这使其成为开发人员的强大工具。

IronXL 与所有 .NET Framework 以及 Linux、MacOS、Docker、Azure 和 AWS 兼容。 它可用于创建控制台应用程序、Web 应用程序和桌面应用程序,例如 Blazor 和 MAUI 等现代 Web 应用程序。它支持多种工作簿格式,例如 XLS 和 XLSX 文件、XSLT 和 XLSM、CSV 和 TSV。

IronXL 的一些重要特性

如何在C#中打开Excel文件?

前提条件

要在 C# 应用程序中使用 IronXL,请在本地计算机上安装以下组件:

  1. Visual Studio - 它是开发 C# .NET 应用程序的官方 IDE。 您可以从微软网站下载并安装 Visual Studio。 您还可以使用Jetbrains ReSharper 和 Rider。
  2. IronXL - 它是 Excel 库,可以帮助在 C# 中处理给定路径下的 Excel 工作表。 必须先将其安装到您的 C# 应用程序中才能使用。 您可以从NuGet 网站下载,也可以从 Visual Studio 工具中的"管理 NuGet 程序包"下载。 您也可以直接下载.NET Excel DLL文件。

添加必要的命名空间

安装好 Visual Studio 和 IronXL 后,在 C# 文件顶部添加以下代码行,以添加必要的 IronXL 命名空间:

// Add reference to the IronXL library
using IronXL;
// Add reference to the IronXL library
using IronXL;
' Add reference to the IronXL library
Imports IronXL
$vbLabelText   $csharpLabel

在 C# 中打开现有 Excel 文件

Excel 文件(也称为工作簿)由多个工作表组成,每个工作表都包含单元格值。 要打开并读取 Excel 文件,请使用WorkBook类的Load方法加载它。

// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");
// Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("test.xlsx");
' Supported Excel spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
$vbLabelText   $csharpLabel

这将工作簿初始化为WorkBook实例。 要打开特定的WorkSheet ,请从WorkSheets集合中检索它:

// Access the first worksheet in the workbook
WorkSheet sheet = workbook.WorkSheets.First();
// Access the first worksheet in the workbook
WorkSheet sheet = workbook.WorkSheets.First();
' Access the first worksheet in the workbook
Dim sheet As WorkSheet = workbook.WorkSheets.First()
$vbLabelText   $csharpLabel

这将访问 Excel 文件中的第一个工作表,以便进行读取和写入操作。

如何在 C# 中打开 Excel 文件,图 1:Excel 文件 Excel 文件

用 C# 读取 Excel 文件

Excel 文件打开后,即可读取数据。 使用 IronXL 在 C# 中读取 Excel 文件中的数据非常简单。 您可以通过指定单元格引用来读取单元格值。

以下代码用于获取单元格的值:

// Select the cell using Excel notation and retrieve its integer value
int cellValue = sheet["C2"].IntValue;

// Display the value in the console
Console.WriteLine(cellValue);
// Select the cell using Excel notation and retrieve its integer value
int cellValue = sheet["C2"].IntValue;

// Display the value in the console
Console.WriteLine(cellValue);
' Select the cell using Excel notation and retrieve its integer value
Dim cellValue As Integer = sheet("C2").IntValue

' Display the value in the console
Console.WriteLine(cellValue)
$vbLabelText   $csharpLabel

译文如下:

如何在 C# 中打开 Excel 文件,图 2:读取 Excel 读取 Excel

要读取一系列单元格中的数据,请使用循环遍历指定的范围:

// Iterate through a range of cells and display their address and text content
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Iterate through a range of cells and display their address and text content
foreach (var cell in sheet["A2:A6"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Iterate through a range of cells and display their address and text content
For Each cell In sheet("A2:A6")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
$vbLabelText   $csharpLabel

访问单元格区域A2:A6中的每个值并将其打印到控制台。

如何在 C# 中打开 Excel 文件,图 3:读取单元格区域 读取单元格范围

有关更详细的读写示例,请查看C# 中的 Excel 读取教程

创建新工作簿

IronXL 还方便创建新的工作簿以保存和检索数据。

只需一行代码即可创建一个新的 Excel 文件:

// Create a new workbook with the XLSX format
WorkBook workBook = new WorkBook(ExcelFileFormat.XLSX);
// Create a new workbook with the XLSX format
WorkBook workBook = new WorkBook(ExcelFileFormat.XLSX);
' Create a new workbook with the XLSX format
Dim workBook As New WorkBook(ExcelFileFormat.XLSX)
$vbLabelText   $csharpLabel

接下来,创建一个工作表并向其中添加数据。

创建新工作表

// Create a worksheet named "GDPByCountry" in the workbook
WorkSheet workSheet = workBook.CreateWorkSheet("GDPByCountry");
// Create a worksheet named "GDPByCountry" in the workbook
WorkSheet workSheet = workBook.CreateWorkSheet("GDPByCountry");
' Create a worksheet named "GDPByCountry" in the workbook
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("GDPByCountry")
$vbLabelText   $csharpLabel

这段代码会在工作簿中添加一个名为"GDPByCountry"的工作表,允许您添加单元格值。

要为特定单元格设置值,请使用以下代码:

// Set the value of cell A1 to "Example"
workSheet["A1"].Value = "Example";
// Set the value of cell A1 to "Example"
workSheet["A1"].Value = "Example";
' Set the value of cell A1 to "Example"
workSheet("A1").Value = "Example"
$vbLabelText   $csharpLabel

最终输出结果为:

如何在 C# 中打开 Excel 文件,图 4:向单元格添加值 向单元格添加值

总结

本文演示了如何使用 IronXL 在 C# 中打开和读取 Excel 文件,例如 XLS 和 XLSX 文件。 IronXL 执行与 Excel 相关的任务时,不需要在系统上安装 Microsoft Excel。

IronXL 提供了一个全面的 Excel 相关任务编程解决方案,包括公式计算、字符串排序、修剪、查找和替换、合并和取消合并保存文件等等。 您还可以设置单元格数据格式。

IronXL 提供30 天免费试用,并可授权用于商业用途。 IronXL 的 Lite 套餐起价为$799 。

常见问题解答

如何在 C# 中打开 Excel 文件而不使用 Interop?

您可以利用 IronXL 库在 C# 中打开 Excel 文件,无需使用 Interop。使用 WorkBook.Load 方法将 Excel 文件加载到 WorkBook 实例中,以便访问和操作文件中的数据。

这个 C# Excel 库兼容哪些文件格式?

IronXL 支持多种 Excel 文件格式,包括 XLS、XLSX、CSV 和 TSV。这使开发人员能够在 C# 应用程序中灵活地打开、读取和写入这些格式。

我能用这个库在 C# 中编辑 Excel 文件吗?

是的,您可以使用 IronXL 编辑 Excel 文件。加载工作簿后,您可以修改数据、添加新工作表,然后将更改保存回文件或以各种格式导出。

如何为我的 C# 项目安装这个库?

要在您的 C# 项目中安装 IronXL,您可以使用 Visual Studio 中的 NuGet 包管理器来添加库。或者,您可以下载 .NET Excel DLL 并在项目中引用它。

能用这个库加密 Excel 文件吗?

是的,IronXL 允许你加密和解密 Excel 文件。您可以使用密码保护 Excel 文档,以便在文件操作期间保护敏感数据。

这个库支持 Excel 表中的公式重新计算吗?

IronXL 支持自动公式重新计算,确保对数据的任何更改都自动更新公式,就像在 Excel 中一样。

我如何使用这个库读取 Excel 工作表中的特定单元格值?

要使用 IronXL 读取特定单元格值,您可以使用 Excel 表达式引用单元格。例如,sheet["A1"].StringValue 将从单元格 A1 中检索字符串值。

这个库可以跨不同操作系统使用吗?

是的,IronXL 兼容多个操作系统,包括 Windows、Linux 和 macOS。它还支持在 Docker、Azure 和 AWS 环境中的部署。

这个库相对于 MS Office Interop 有哪些优点?

IronXL 提供了相对于 MS Office Interop 的几个优点,例如不需要在系统上安装 Excel,在服务器环境中表现更好,并更易于在现代 .NET 应用程序中使用。

这个 C# Excel 库有免费试用版吗?

是的,IronXL 提供 30 天的免费试用,让您在为您的项目决定商业许可证之前测试其功能和能力。

Curtis Chau
技术作家

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

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