跳至页脚内容
使用 IRONXL

如何在 C# 中使用 IronXL 打开 Excel 文件应用程序

在C#中打开和处理Excel文件是几乎每个.NET开发人员都会遇到的事情。 无论您是在自动化每周报告,读取数据导入,还是构建可以即时生成电子表格的工具,您处理Excel文件的方式都会对速度、可靠性和部署灵活性产生重大影响。

在本教程中,我们将看看如何使用IronXL在C#中打开Excel文件——这是一个轻量级的Excel库,无需安装Microsoft Office即可读取、编辑和编写工作簿。 您将看到在您的C#应用程序内,加载数据、访问工作表以及以编程方式处理单元格是多么简单。

为何选择IronXL而不是Microsoft.Office.Interop.Excel?

尽管Microsoft.Office.Interop.Excel是自动化Excel的传统方法,但它具有显著的限制,使得IronXL成为现代应用程序的更佳选择。 Microsoft本身建议不要在服务器上使用Office Interop

特征

IronXL

Microsoft.Office.Interop.Excel

需要安装 Excel

✅ 否

❌ 是的

跨平台支持

✅ Windows、Linux、macOS

❌ 仅限 Windows 系统

服务器部署

✅ 完全支持

❌ 微软不推荐

内存管理

✅ 自动

❌ 需要手动清理 COM 对象

API 复杂性

✅ 简单直观

❌ 复杂的 COM 接口

文件格式支持

✅ XLS、XLSX、CSV、TSV、JSON

⚠️ 仅限 Excel 格式

IronXL消除了对Microsoft Excel的依赖,使其成为服务器环境、Docker容器Azure这样的云平台的理想选择。 该库提供了一个干净、现代的API,消除了处理COM对象或手动内存管理的需要。

如何安装IronXL for .NET?

开始使用IronXL很简单; 可以在几分钟内添加到您的项目中。 只需通过NuGet包管理器安装它:

Install-Package IronXL.Excel

立即开始使用 IronXL。
green arrow pointer

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

使用IronXL打开现有的Excel文件只需几行代码。 该库支持读取各种Excel格式,包括XLS和XLSX,如下代码片段所示:

// Load an existing Excel file
WorkBook workbook = WorkBook.Load("sales-data.xlsx");
// Access the first worksheet
WorkSheet sheet = workbook.WorkSheets[0];
// Or access a worksheet by name
WorkSheet namedSheet = workbook.GetWorkSheet("January Sales");
// Read a specific cell value
string cellValue = sheet["A1"].StringValue;
Console.WriteLine($"Cell A1 contains: {cellValue}");
// Load an existing Excel file
WorkBook workbook = WorkBook.Load("sales-data.xlsx");
// Access the first worksheet
WorkSheet sheet = workbook.WorkSheets[0];
// Or access a worksheet by name
WorkSheet namedSheet = workbook.GetWorkSheet("January Sales");
// Read a specific cell value
string cellValue = sheet["A1"].StringValue;
Console.WriteLine($"Cell A1 contains: {cellValue}");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

以上代码演示了将Excel文件加载到WorkBook对象中,这代表了整个Excel文件。WorkBook.Load()方法会自动检测文件格式(XLS、XLSX、CSV或TSV)并进行适当处理。

您可以通过索引或名称使用GetWorkSheet()方法访问工作表。 通过直观的括号表示法即可访问单个单元格的值,从而使代码具有很高的可读性。 对于更复杂的场景,请探索使用Excel范围单元格数据格式

输出

在C#中使用IronXL打开Excel文件应用:图1 - 打开和读取示例Excel文件

如何创建新的Excel工作簿?

使用IronXL的电子表格创建功能,创建新的Excel文件同样简单:

// Create a new workbook
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
// Add metadata
workbook.Metadata.Author = "Sales Department";
// Create a worksheet
WorkSheet sheet = workbook.CreateWorkSheet("Q1 Report");
// Add data to cells
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Revenue";
sheet["A2"].Value = "Software Licenses";
sheet["B2"].Value = 45000;
// Apply formatting
sheet["B2"].FormatString = "$#,##0.00";
// Save the workbook
workbook.SaveAs("quarterly-report.xlsx");
// Create a new workbook
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
// Add metadata
workbook.Metadata.Author = "Sales Department";
// Create a worksheet
WorkSheet sheet = workbook.CreateWorkSheet("Q1 Report");
// Add data to cells
sheet["A1"].Value = "Product";
sheet["B1"].Value = "Revenue";
sheet["A2"].Value = "Software Licenses";
sheet["B2"].Value = 45000;
// Apply formatting
sheet["B2"].FormatString = "$#,##0.00";
// Save the workbook
workbook.SaveAs("quarterly-report.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

在此代码示例中,WorkBook.Create()方法会根据您指定的格式初始化一个新的工作簿。 您可以使用CreateWorkSheet()添加多个工作表,将各种数据类型填充到Excel的行和列的特定单元格,并应用格式样式。 该库会自动处理数据类型转换和Excel特定的格式需求。 了解有关在C#中的Excel公式的更多信息以进行高级计算。

输出

在C#中使用IronXL打开Excel文件应用:图2 - 创建新的Excel工作簿

如何读取和处理Excel工作表数据?

IronXL在数据提取和处理方面表现出色:

// Load workbook
WorkBook workbook = WorkBook.Load("inventory.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Read a range of cells
var range = sheet["A1:D5"];
foreach (var cell in range)
{
    Console.WriteLine($"{cell.AddressString}: {cell.Text}");
}
// Convert to DataTable for easier processing
System.Data.DataTable dataTable = sheet.ToDataTable(true);
// Process data using LINQ
decimal total = sheet["C2:C5"].Sum();
Console.WriteLine($"Total: {total}");
// Load workbook
WorkBook workbook = WorkBook.Load("inventory.xlsx");
WorkSheet sheet = workbook.DefaultWorkSheet;
// Read a range of cells
var range = sheet["A1:D5"];
foreach (var cell in range)
{
    Console.WriteLine($"{cell.AddressString}: {cell.Text}");
}
// Convert to DataTable for easier processing
System.Data.DataTable dataTable = sheet.ToDataTable(true);
// Process data using LINQ
decimal total = sheet["C2:C5"].Sum();
Console.WriteLine($"Total: {total}");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

在这里,我们使用相同的过程在项目中打开我们的Excel文件。 范围选择语法(sheet["A1:D5"])提供了一种优雅的方式来处理多个单元格。 ToDataTable()方法将工作表数据转换为DataTable,从而实现与数据库和数据绑定场景的集成。 IronXL还支持聚合函数,如Sum()、Average()和Max(),可直接应用于范围。 要处理更大的数据集,请参见完整的API文档

在C#中使用IronXL打开Excel文件应用:图3 - 处理的Excel数据输出

无需Microsoft Office工作

IronXL的最大优势之一是它能够独立于Microsoft Office运行。这种能力为众多部署场景打开了大门:

  • 云部署:无需担心许可问题,可在Azure、AWS或Google Cloud上运行
  • Docker容器:无需复杂的Office安装即可在容器化应用中包含
  • Linux服务器:部署到具有成本效益的Linux环境
  • CI/CD管道:在自动化构建过程中生成Excel报告

该库在内部处理所有的Excel文件生成和操作,使用其自身的渲染引擎以确保在所有平台上获得一致的结果。

结论

IronXL为C#中打开和操作Excel文件提供了一种现代且高效的解决方案。 通过消除对Excel的依赖并提供一个干净的API,它简化了开发并提供更广泛的部署选项。 无论您是在构建桌面应用程序、Web服务还是基于云的解决方案,IronXL都确保您的Excel自动化在所有环境中可靠运行。

准备好现代化您的Excel自动化了吗? 下载IronXL免费试用版,起价为$liteLicense。

常见问题解答

如何在 C# 中打开 Excel 文件而无需 Microsoft Office?

您可以使用 IronXL 在 C# 中打开 Excel 文件,而无需 Microsoft Office。IronXL 提供了一个优于 Interop 的现代替代方案,具有更好的性能且无 Excel 依赖。

使用 IronXL 处理 C# 中的 Excel 文件有哪些好处?

IronXL 提供了多项好处,包括提高性能,无需依赖 Excel 安装,且在部署方面具有更大的灵活性。它允许开发者高效地自动生成报告、读取数据导入和生成电子表格。

IronXL 能处理 Excel 文件的自动化任务吗?

可以,IronXL 非常适合用于生成每周报告、读取数据导入和创建动态电子表格生成工具等自动化任务。

IronXL 是 C# 应用程序中 Interop 的适合替代品吗?

IronXL 是 Interop 的适当替代品,提供了一种现代解决方案,无需 Excel 依赖,并在处理 Excel 文件时提高了应用性能。

IronXL 支持读取和写入 Excel 文件吗?

IronXL 完全支持读取和写入 Excel 文件,成为 .NET 开发者处理电子表格数据的多功能工具。

Curtis Chau
技术作家

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

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