如何在 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
在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以上代码演示了将Excel文件加载到WorkBook对象中,这代表了整个Excel文件。WorkBook.Load()方法会自动检测文件格式(XLS、XLSX、CSV或TSV)并进行适当处理。
您可以通过索引或名称使用GetWorkSheet()方法访问工作表。 通过直观的括号表示法即可访问单个单元格的值,从而使代码具有很高的可读性。 对于更复杂的场景,请探索使用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在此代码示例中,WorkBook.Create()方法会根据您指定的格式初始化一个新的工作簿。 您可以使用CreateWorkSheet()添加多个工作表,将各种数据类型填充到Excel的行和列的特定单元格,并应用格式样式。 该库会自动处理数据类型转换和Excel特定的格式需求。 了解有关在C#中的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在这里,我们使用相同的过程在项目中打开我们的Excel文件。 范围选择语法(sheet["A1:D5"])提供了一种优雅的方式来处理多个单元格。 ToDataTable()方法将工作表数据转换为DataTable,从而实现与数据库和数据绑定场景的集成。 IronXL还支持聚合函数,如Sum()、Average()和Max(),可直接应用于范围。 要处理更大的数据集,请参见完整的API文档。

无需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 开发者处理电子表格数据的多功能工具。








