IRONSOFTWAREHOME
与其他组件比较

IronXL 和 Microsoft Office Interop Excel 的比较

Curtis Chau
Curtis Chau
Updated: 2026年7月19日

MS Office 工具(如 Word、Excel、PowerPoint 等)非常流行,广泛应用于各类企业。 以 Excel 文件格式创建报告文件是许多用户在其软件应用程序中需要的一项功能,现在有了一种明确的方法,可以利用现有的不同库将这一功能纳入软件应用程序中。

在本文中,我们将讨论和比较如何使用 IronXL 和 Microsoft Office Excel Interop 这两个最流行的库,在 C# 中以编程方式处理 Microsoft Excel 文件。

IronXL 和 Microsoft Excel Interop 都提供了在 .NET Framework 中创建、编辑和读取 Excel 文档的方法。 下一个问题是决定哪个C# Excel库最适合您的项目。 本文将帮助您为您的应用程序选择最佳选项。

让我们先看看这两个库都能提供什么,然后再进行比较。

IronXL库

IronXL for .NET 是一个.NET 库,便于用 C# 阅读和编辑 Microsoft Excel 文档。 IronXL.Excel是一个独立的.NET软件库,用于读取各种电子表格格式。 它不需要安装Microsoft Excel,也不依赖于Interop。

IronXL是一个直观的C# API,可以让您在.NET中读取、编辑和创建Excel电子表格文件,性能极快。 IronXL 完全支持 .NET Core、.NET Framework、Xamarin、移动平台、Linux、macOS 和 Azure。

IronXL是C#中领先的.NET核心和.NET框架Excel电子表格库。

文档与支持

IronXL功能集

  • 从 XLS/XLSX/CSV/TSV 加载、读取和编辑数据
  • 保存和导出 - 至 XLS/XLSX/CSV/TSV/JSON
  • System.Data 对象 - 将 Excel 电子表格作为 System.Data.DataSet 和 System.Data.DataTable 对象处理。
  • 公式 —— 与Excel公式一起工作。 每次编辑工作表时公式都会重新计算。
  • 范围 - 易于使用的工作表 ["A1:B10"] 语法。 直观地组合和创建范围。
  • 排序 - 对范围、列和行进行排序。
  • 样式 - 单元视觉样式、字体、大小、背景图案、边框、对齐方式和数字格式。

Microsoft Office Excel 互操作对象

Microsoft.Office.Interop.Excel 命名空间提供了在 C# 和 Visual Basic 中与 Microsoft Excel 应用程序交互的方法。 通过该命名空间,我们可以创建新的 Excel 工作簿、Excel 工作表、显示现有工作表中的数据、修改现有 Excel 工作表内容等。

Microsoft.Office.Interop.Excel 中的类和接口支持 Microsoft Excel 文件的 COM 对象模型与自动处理 xls 或 xlsx 文件的托管应用程序之间的互操作性。

C# 编程语言包含的功能可使 Microsoft Office Interop API 对象的工作变得更加轻松。 新功能包括命名参数和可选参数、一种称为动态的新类型,以及将参数传递给 COM 方法中的引用参数(就像传递值参数一样)的功能。 这使它成为使用 COM 和 Interop 对象的更好选择。

注意:计算机上需要安装 Microsoft Excel Interop 对象

文章的其余部分如下:

  1. 创建控制台应用程序
  2. 安装IronXL C#库 3.Microsoft Office Interop Excel 安装 4.创建新的 Excel 工作簿和工作表 5.阅读 Excel 文件 6.在 Excel 文件中处理数值范围 7.使用 Excel 公式
  3. 授权 9.摘要和结论

1. 创建控制台应用程序

使用以下步骤创建控制台应用程序:

  • 启动Visual Studio 2022 IDE。
  • 点击**"创建新项目"**。
  • 在**"创建新项目"页面上,从下拉列表中选择C#、从平台列表中选择Windows**,并从**"项目类型"列表中选择控制台**。
  • 从显示的项目模板中选择控制台应用程序(.NET Framework)
创建项目 - 控制台应用程序
  • 点击下一步
  • 附加信息屏幕中,指定您想使用的框架版本。 在本例中,我们将使用**.NET Framework 4.8**。
创建项目 - .NET Framework
  • 点击创建以完成该过程。

现在项目已创建,我们几乎准备好测试这些库了。 不过,我们仍需要将它们安装并集成到我们的项目中。 让我们先安装IronXL。

2. IronXL C# 库安装

您可以使用以下方法下载和安装IronXL库:

  1. 使用包含NuGet包的Visual Studio。
  2. 直接下载NuGet包。
  3. 使用DLL手动安装。

让我们仔细看一下每个方法。

2.1. 使用包含NuGet包的Visual Studio

Visual Studio 提供 NuGet 包管理器以便在您的项目中安装 NuGet 包。 您可以通过项目菜单或通过右键点击解决方案资源管理器中的项目访问它。

选择"管理 NuGet 包"
  • 现在,从浏览选项卡 -> 搜索 IronXL.Excel -> 安装
搜索 IronXL
  • 我们完成了。
搜索 Microsoft Excel Interop

3.2. 使用NuGet包管理器控制台

下载和安装 Microsoft.Office.Interop.Excel C# 库的另一种方法是利用以下步骤,通过开发人员命令提示符安装 NuGet 软件包。

1.打开 Developer 命令提示符--通常可在 Visual Studio 文件夹中找到。 2.键入以下命令:

PM> Install-Package Microsoft.Office.Interop.Excel
SHELL

3.按回车键。 4.这将下载并安装软件包。 5.重新加载您的 Visual Studio 项目并开始使用。

3.3.添加必要的使用指令

1.在解决方案资源管理器中,右键单击 Program.cs 文件,然后单击查看代码。 2.在代码文件顶部添加以下 using 指令:

using Excel = Microsoft.Office.Interop.Excel;

4.创建新的 Excel 工作簿和工作表

一个工作簿是一个包含多个行和列工作表的Excel文件。 两者均提供创建新的Excel工作簿和工作表的设施。 让我们一步步来看一下代码。

4.1.使用 IronXL.Excel 创建新的 Excel 工作簿和工作表

using IronXL.Excel 创建一个新的 Excel 工作簿再简单不过了! 只需一行代码! 是的,真的。 在Program.cs文件中的静态void Main函数中添加以下代码:

// Create a new workbook in XLSX format
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);

使用IronXL可以创建XLS(旧版Excel文件)和XLSX(当前和新版文件)两种文件格式。

而且,创建默认工作表更简单:

// Create a new worksheet
var worksheet = workbook.CreateWorkSheet("IronXL Features");

现在您可以使用工作表变量设置单元格值,并几乎可以做Excel文件能做的一切。

4.2.使用 Microsoft.Office.Interop.Excel 创建新的 Excel 工作簿和工作表

要使用 Microsoft.Office.Interop 创建 Excel 文件,需要安装 Microsoft Excel。 因此,我们需要检查主机上是否安装了 Microsoft Excel,如果没有,则会返回一个需要处理的异常。 通过以下代码示例,您可以检查 Excel 应用程序的安装情况,并创建 Excel 工作簿和工作表:

检查已安装 Microsoft Excel:

// Start Excel and get Application object.
Excel.Application xlApp = new Excel.Application();  

// Check if Excel is installed  
if (xlApp == null)  
{  
    Console.WriteLine("Excel is not installed in the system...");
    return;  
}

创建工作簿和工作表:

// Create Workbook and Worksheet
object misValue = System.Reflection.Missing.Value;  
Excel.Workbook xlWorkBook = xlApp.Workbooks.Add(misValue);  
Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

目前,从两份代码来看,IronXL.Excel 比 Office Interop Excel 更具优势。 IronXL.Excel 只用一行代码就能处理 Excel 文件,没有任何繁琐和额外的依赖性。

5. 读取Excel文件

这两个库都可以打开和读取现有的Excel文档。 让我们看看示例代码。

5.1. 使用IronXL读取Excel文件

IronXL WorkBook类表示一个Excel sheet。 要使用C#打开Excel文件,我们使用WorkBook.Load并指定Excel文件(.xlsx)的路径。 以下一行代码用于打开文件以进行读取:

// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");

每个WorkBook可以有多个WorkSheet对象。 这些表示Excel文件中的工作表。 如果工作簿包含工作表,通过名称检索它们如下所示:

// Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");

读取单元格值的代码:

// Read from Ranges of cells elegantly.
foreach (var cell in worksheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

5.2.使用 Microsoft.Office.Interop.Excel 读取 Excel 文件

这也使用一行代码来打开工作簿和工作表。 代码如下

Excel.Application xlApp = new Excel.Application();  

// Load WorkBook
Excel.Workbook xlWorkBook = xlApp.Workbooks.Open(filePath);  

// Open Sheet for reading
Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

读取单元格值的代码:

// Get the entire range of cells
Excel.Range xlRange = xlWorkSheet.UsedRange;

// Reading first 10 rows with two columns
for (int rowCount = 1; rowCount <= 10; rowCount++)  
{  
    string firstValue = Convert.ToString((xlRange.Cells[rowCount, 1] as Excel.Range).Text);  
    string secondValue = Convert.ToString((xlRange.Cells[rowCount, 2] as Excel.Range).Text);  
    
    Console.WriteLine(firstValue + "\t" + secondValue);  
}

然而,检查 Excel 安装并创建其实例也是不可或缺的一部分。

6.在 Excel 文件中处理数值范围

6.1.使用 IronXL 处理数值范围

在 IronXL 中,只需一行代码,我们就可以获得特定单元格的取值范围。 然后,使用循环可以读取或编辑每个单元格的值。 代码如下

// Load the workbook and get the first worksheet
WorkBook workbook = WorkBook.Load("test.xls");
WorkSheet sheet = workbook.WorkSheets.First();
 
// This is how we get range from Excel worksheet
var range = sheet["A2:A8"];
// This is how we can iterate over our range and read or edit any cell
foreach (var cell in range)
{
    Console.WriteLine(cell.Value);
}

6.2.使用 Microsoft.Office.Interop.Excel 处理数值范围

这也是使用一行代码来获取单元格值范围。 然后可以用所需的值更新单元格。 代码如下

Excel.Application xlApp = new Excel.Application();  
Excel.Workbook xlWorkBook = xlApp.Workbooks.Open(filePath);  
Excel.Worksheet xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

// Get range of values and updating their format
var range = xlWorkSheet.get_Range("A1", "D1");
range.NumberFormat = "$0.00";

7.使用 Excel 公式

Excel 公式是处理 Excel 文件的最重要部分。 这两个库都提供了处理公式并将其轻松应用到单元格中的功能。

7.1.使用 IronXL.Excel 处理 Excel 公式

加载工作簿和工作表后,可使用以下代码示例对公式进行更改或将其应用到特定单元格。 代码如下

// Set Formulas
worksheet["A1"].Formula = "Sum(B8:C12)";
worksheet["B8"].Formula = "=C9/C11";
worksheet["G30"].Formula = "Max(C3:C7)";
 
// Force recalculate all formula values in all sheets.  
workbook.EvaluateAll();

您还可以检索公式及其值。

// Get Formulas
// Get the formula's calculated value.  e.g. "52"
string formulaValue = worksheet["G30"].Value;
 
// Get the formula as a string. e.g. "Max(C3:C7)"
string formulaString = worksheet["G30"].Formula;

// Save your changes with updated formulas and calculated values.
workbook.Save();

7.2.使用 Microsoft.Office.Interop.Excel 处理 Excel 公式

同样,在加载工作簿和工作表后,可以使用以下代码来处理 Excel 公式。 代码示例如下:

// Get range of values and updating their format
var range1 = xlWorkSheet.get_Range("A1", "D1");
var range2 = xlWorkSheet.get_Range("C2", "C6");

// Set Formula
range1.Formula = "=RAND()*100000";
range2.Formula = "=A2 & \" \" & B2";

8. 许可证

IronXL是一个开放商业的C# Excel库。 它适用于开发,并始终可以为商业部署获得许可证。 许可可供单项目使用、单个开发者、代理机构和全球公司,以及SaaS和OEM再分发。 所有许可证包括30天退款保证、一年产品支持和更新,可用于开发/演示/生产环境,还提供永久许可(一次性购买)。 Lite软件包从$999开始。

对于 Microsoft Office Interop Excel,使用此 DLL 文件的应用程序无论是一次性使用还是商业用途,都不需要单独的许可证。 为了使任何解决方案都能与 Office 应用程序配合使用,必须在运行解决方案的计算机上安装 Microsoft Office 应用程序并获得许可。 DLL 将始终存在于安装 Office 应用程序的机器上,并在那里注册。 同时,使用 "互操作 "的 .NET 解决方案所需的主要互操作程序集 (PIA) 也将安装在 GAC 中。

9.总结和结论

摘要 using Iron Software 的 IronXL 软件库,用 C# 和所有其他 .NET 语言读取和创建 Excel(XLS、XLSX 和 CSV)文件变得非常容易。 IronXL 不需要在服务器或 Interop 上安装 Excel。IronXL 提供了比 Microsoft.Office.Interop.Excel更快、更直观的 API。 IronXL 适用于 .NET Core 2、Framework 4.5、Azure、Mono and、Mobile 和 Xamarin。

从 C# 或 VB.NET 应用程序创建/读取 Excel 文件(XLS、XLSX、CSV)时,可选择使用 Microsoft Office Interop(Excel 自动化)。 它要求所有客户机安装相同版本的 Microsoft Excel,并且只能在 Windows 操作系统上运行。

结论

在这方面,IronXL 与 Microsoft.Office.Interop.Excel 相比具有明显的优势,因为它不需要在本地或服务器机器上安装 Microsoft Office Excel 应用程序即可工作。 此外,在使用 Excel Automation 时,Microsoft Excel 会在后台加载,与 IronXL 相比,会占用大量 MB 空间并加载大量文件和 DLL。 IronXL 的 API 比 Microsoft.Office.Interop.Excel更快、更直观。

Microsoft Office 应用程序(包括 Excel)设计为 UI 应用程序,因此 API 运行速度非常慢。 Microsoft 不建议在服务器上使用 Excel Automation(或任何 Office Interop)。 在这种情况下,IronXL 凭借其强大的功能,成为集成到软件应用程序中的最佳选择。

请注意: Microsoft Office 是其各自所有者的注册商标。 本网站与 Microsoft Office 无关,也未经 Microsoft Office 认可或赞助。所有产品名称、徽标和品牌均为其各自所有者的财产。 比较仅供参考,反映撰写时公开可用的信息。
Curtis Chau
技术作家

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

...
阅读更多

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户