与其他组件比较

IronXL与ClosedXML的比较

发布 2022年十月24日
分享:

当今的软件应用程序要求能够使用 Excel 文件创建数据库和生成报告。现在有很多库可以让用户在不使用 Microsoft Excel 的情况下完成这些工作。

在本文中,我们将讨论和比较如何使用两个最流行的库 IronXL 和 ClosedXML 库,在 C# .NET 技术中以编程方式处理 Microsoft Excel 文档,以读取、操作和编写 excel 报告。

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

让我们先看看这两个库都有哪些功能,然后再进行比较。



The IronXL Library

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

IronXL 是一个直观的 C# 应用程序接口,可让你在 .NET 中以快如闪电的性能读取、编辑和创建 Excel 电子表格文件。IronXL 完全支持 .NET Core、.NET Framework、Xamarin、Mobile、Linux、macOS 和 Azure。

IronXL 是一款领先的 .NET Core 和 .NET Framework Excel 电子表格库,适用于 C#。

IronXL 功能集

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

使用此功能可了解 IronXL 的更多功能 链接.

ClosedXML

ClosedXML 是一个用于读取、操作和编写 Excel 2007+ 的 .NET 库。 (.xlsx, .xlsm) 文件。它旨在为处理底层 OpenXML 库提供一个直观和用户友好的界面。.xlsx 是 Microsoft Excel 使用的 OpenXML 底层 API 电子表格文件格式的文件扩展名。.xlsm 文件支持宏。.xltm 是支持宏的模板文件。.xls 格式是一种专有的二进制格式,而 .xlsx 基于 Office OpenXML 格式。

ClosedXML 是一个用于在 Microsoft Excel 中生成报告的 .NET 库,**无需在运行代码的机器上安装 Excel。

ClosedXML 功能

ClosedXML拥有用户友好的界面和广泛的API功能,可以处理Excel中内容的创建和提取。通过这些 API 调用和 pull request,你可以修改 Excel 工作表或工作簿中的每一个小细节。

所有功能如下:

  1. 公式

  2. 验证

  3. 超级链接

  4. 保护 (工作表和单元格级别)

  5. 条件格式化

  6. 冻结面板

  7. 表格

  8. 范围

  9. 款式

  10. 页面设置 (打印)

  11. 自动滤波器

  12. 评论

本文其余部分继续如下:

1.创建控制台应用程序

2.安装 IronXL C# 库

3.ClosedXML 安装

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

5.读取 Excel 文件

6.使用 Excel 公式

7.许可

8.摘要和结论

1.创建控制台应用程序

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

  • 启动 Visual Studio 2022 集成开发环境。
  • 点击 "创建新项目"。
  • 在 "创建新项目"页面,在语言下拉列表中选择C#,在平台列表中选择Windows,在 "项目类型"列表中选择控制台
  • 选择*控制台应用程序 (.NET框架)从显示的项目模板中选择*。
创建项目

创建项目

  • 点击下一步
  • 将项目命名为 "DemoApp",然后单击下一步
DemoApp 项目

DemoApp 项目

  • 在 "附加信息 "屏幕中,指定要使用的框架版本。在本例中,我们将使用.NET Framework 6.0**。
.NET Framework 6.0

.NET Framework 6.0

  • 点击创建,完成程序。

现在项目已创建,我们几乎可以测试库了。不过,我们仍需安装并将它们集成到项目中。让我们先安装 IronXL。

2.安装 IronXL C# 库

您可以下载并安装 IronXL 图书馆 使用以下方法:

1.使用 Visual Studio 和 NuGet 软件包。

2.手动安装 DLL。

让我们逐一详细了解。

2.1.将 Visual Studio 与 NuGet 软件包结合使用

Visual Studio 提供了 NuGet 包管理器,用于在项目中安装 NuGet 包。你可以通过 "项目菜单 "或右键单击 "解决方案资源管理器 "中的项目来访问它。

软件包管理器

软件包管理器

  • 然后,从 "浏览 "选项卡 > 搜索 IronXL.Excel > 安装
IronXL NuGet 安装

IronXL NuGet 安装

  • 我们就大功告成了。

2.2.手动安装 DLL

下载和安装 IronXL C# 库的另一种方法是使用以下步骤,通过开发人员命令提示符安装 IronXL NuGet 软件包

  • 打开开发人员命令提示符--通常可在 Visual Studio 文件夹中找到。

键入以下命令

Install-Package IronXL.Excel
  • 按回车键。
  • 这将下载并安装软件包。
  • 重新加载 Visual Studio 项目并开始使用。

2.4.添加必要的 Using 指令

1.在解决方案资源管理器中,右键单击 Program.cs 文件,然后单击查看代码。

2.在代码文件顶部添加以下 using 指令:

using IronXL;
using IronXL;
Imports IronXL
VB   C#

全部完成! IronXL 已下载、安装并准备就绪。不过,在此之前,我们应该先安装 ClosedXML。

3.ClosedXML 安装

要安装 ClosedXML 软件包,可以直接从 NuGet 或项目中的 NuGet 软件包管理器/控制台下载。

要直接安装 ClosedXML,请点击此处 链接.

3.1.使用 NuGet 软件包管理器/控制台

从项目解决方案资源管理器打开 NuGet 包管理器,浏览 ClosedXML 并点击安装。

ClosedXML NuGet 安装

ClosedXML NuGet 安装

或者

  • 打开开发者命令提示符--通常可在 Visual Studio 文件夹中找到。

键入以下命令

PM> Install-Package ClosedXML
  • 按回车键。
  • 这将下载并安装软件包。
  • 重新加载 Visual Studio 项目并开始使用。

3.2.添加必要的 Using 指令

1.在解决方案资源管理器中,右键单击 Program.cs 文件,然后单击查看代码。

2.在代码文件顶部添加以下 using 指令:

using ClosedXML.Excel;
using ClosedXML.Excel;
Imports ClosedXML.Excel
VB   C#

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

工作簿是一个 Excel 文件,包含多行多列工作表。这两个库都提供了创建新 Excel 工作簿和工作表的功能。让我们一步步看看代码。

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

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

WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
VB   C#

两种 XLS (旧版 Excel 文件) 和 XLSX (当前和更新的文件版本) 文件格式。

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

var worksheet = workbook.CreateWorkSheet("IronXL Features");
var worksheet = workbook.CreateWorkSheet("IronXL Features");
Dim worksheet = workbook.CreateWorkSheet("IronXL Features")
VB   C#

现在,您可以使用工作表变量来设置单元格值,几乎可以做 Excel 文件能做的所有事情。

//Add data and styles to the new worksheet
worksheet ["A1"].Value = "Hello World";
worksheet ["A2"].Style.BottomBorder.SetColor("#ff6600");
worksheet ["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
//Add data and styles to the new worksheet
worksheet ["A1"].Value = "Hello World";
worksheet ["A2"].Style.BottomBorder.SetColor("#ff6600");
worksheet ["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
'Add data and styles to the new worksheet
worksheet ("A1").Value = "Hello World"
worksheet ("A2").Style.BottomBorder.SetColor("#ff6600")
worksheet ("A2").Style.BottomBorder.Type = IronXL.Styles.BorderType.Double
VB   C#

保存 Excel 文件:

//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");
'Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx")
VB   C#

输出文件如下

新建 Excel 文件 Output

新建 Excel 文件 产量

4.2.使用 ClosedXML 新建 Excel 工作簿和工作表

您还可以创建 Excel 文件(.xlsx, .xlsm) 使用 ClosedXML 可轻松实现。以下代码是一个典型示例,用于生成并保存一个简单的 Excel 文件。您可以在工作簿中添加新的示例工作表,并为 Excel 应用程序中的单元格赋值。

// Create a new empty Excel file.
var workbook = new XLWorkbook();

// Create a new worksheet and set cell A1 value to 'Hello world!'.
var worksheet = workbook.Worksheets.Add("ClosedXML Features");
worksheet.Cell("A1").Value = "Hello world!";

// Save to XLSX file.
workbook.SaveAs("Spreadsheet.xlsx");
// Create a new empty Excel file.
var workbook = new XLWorkbook();

// Create a new worksheet and set cell A1 value to 'Hello world!'.
var worksheet = workbook.Worksheets.Add("ClosedXML Features");
worksheet.Cell("A1").Value = "Hello world!";

// Save to XLSX file.
workbook.SaveAs("Spreadsheet.xlsx");
' Create a new empty Excel file.
Dim workbook = New XLWorkbook()

' Create a new worksheet and set cell A1 value to 'Hello world!'.
Dim worksheet = workbook.Worksheets.Add("ClosedXML Features")
worksheet.Cell("A1").Value = "Hello world!"

' Save to XLSX file.
workbook.SaveAs("Spreadsheet.xlsx")
VB   C#

输出文件如下

电子表格文件输出

电子表格文件输出

5.读取 Excel 文件 (导入 Excel 文件)

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

5.1.使用 IronXL 读取 Excel 文件

IronXL WorkBook 类表示 Excel 工作表。要使用 C# 打开 Excel 文件,我们需要使用 WorkBook.Load 并指定文件路径 (.xlsx).以下单行代码用于打开文件供读取:

//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
//Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
'Load WorkBook
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")
VB   C#

在 Excel 文档中,每个工作簿可以有多个工作表。如果工作簿包含多个工作表,则按名称检索,如下所示:

//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
//Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");
'Open Sheet for reading
Dim worksheet = workbook.GetWorkSheet("sheetnamegoeshere")
VB   C#

读取单元格值的代码:

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

5.2.使用 ClosedXML 读取 Excel 文件

ClosedXML 允许从 C# 应用程序中读取以前创建的文件。您可以使用以下代码导入 excel 文件。

// Import Excel File from file's path.
var workbook = new XLWorkbook("SimpleTemplate.xlsx");

// Read worksheet from workbook using sheet number.
var worksheet1 = workbook.Worksheet(1);

// Read cell value from first sheet
var data = worksheet1.Cell("A1").GetValue<string>();

// Display on screen
Console.WriteLine(data);
// Import Excel File from file's path.
var workbook = new XLWorkbook("SimpleTemplate.xlsx");

// Read worksheet from workbook using sheet number.
var worksheet1 = workbook.Worksheet(1);

// Read cell value from first sheet
var data = worksheet1.Cell("A1").GetValue<string>();

// Display on screen
Console.WriteLine(data);
' Import Excel File from file's path.
Dim workbook = New XLWorkbook("SimpleTemplate.xlsx")

' Read worksheet from workbook using sheet number.
Dim worksheet1 = workbook.Worksheet(1)

' Read cell value from first sheet
Dim data = worksheet1.Cell("A1").GetValue(Of String)()

' Display on screen
Console.WriteLine(data)
VB   C#

6.使用 Excel 公式

Excel 公式是使用 Excel 时最重要的功能之一。这两个库都拥有强大的公式计算引擎。它们提供了使用公式并将其轻松应用于单元格的功能。

6.1.使用 IronXL 处理 Excel 公式

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

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

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

// 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();
// 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();
' Get the formula's calculated value.  e.g. "52"
Dim formulaValue As String = worksheet ("G30").Value

'Get the formula as a string. e.g. "Max(C3:C7)"
Dim formulaString As String = worksheet ("G30").Formula

'Save your changes with updated formulas and calculated values.
workbook.Save()
VB   C#

6.2.使用 ClosedXML 处理 Excel 公式

ClosedXML 并不支持所有公式,如果不支持公式或公式中有错误,你可能会得到一个讨厌的错误。请在投入生产前测试您的公式。让我们来看看如何使用它们。

// Set Formulas
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";

// You can use Evaluate function to directly calculate formula,
var sum = worksheet.Evaluate("SUM(B1:B7)");

// Force recalculation
worksheet.RecalculateAllFormulas();

// Save Excel file
workbook.SaveAs("Formula Calculation.xlsx");
// Set Formulas
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";

// You can use Evaluate function to directly calculate formula,
var sum = worksheet.Evaluate("SUM(B1:B7)");

// Force recalculation
worksheet.RecalculateAllFormulas();

// Save Excel file
workbook.SaveAs("Formula Calculation.xlsx");
' Set Formulas
worksheet.Cell("A1").Value = "Hello World!"
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)"

' You can use Evaluate function to directly calculate formula,
Dim sum = worksheet.Evaluate("SUM(B1:B7)")

' Force recalculation
worksheet.RecalculateAllFormulas()

' Save Excel file
workbook.SaveAs("Formula Calculation.xlsx")
VB   C#

属性 FormulaA1 是对 A1 单元格的引用。如果要引用其他单元格,必须将其添加到公式属性中。例如:FormulaC2.

7.许可证发放

IronXL 是一个公开商业化的 C# Excel 库。它可免费用于开发,也可随时授权用于商业部署。提供许可证适用于单个项目使用、单个开发人员、代理机构和跨国公司,以及 SaaS 和 OEM 再分发。所有许可证都包括 30 天退款保证、一年的产品支持和更新、开发/分期/生产的有效性以及永久许可证。 (一次性购买).Lite 软件包从 $749 开始。

IronXL 许可包

IronXL 许可包

对于 ClosedXML,使用该 DLL 文件的应用程序无论是一次性使用还是商业用途,都不需要单独的许可证。为了让任何解决方案都能使用 ClosedXML,只需安装公开可用的 NuGet 软件包 "ClosedXML "即可。ClosedXML 采用 MIT 许可。MIT 许可是一种简短的许可,只要求保留版权和许可声明。授权作品、修改和更大的作品可以根据不同的条款发布,并且不带源代码。

ClosedXML 许可证

ClosedXML 许可证

8.总结和结论

摘要

IronXL 是一个完整的库,可提供处理 Excel 文件所需的一切。IronXL 允许开发人员读取、生成和编辑 Excel 文件。 (和其他电子表格文件) 在 .NET 应用程序和网站中使用。它为在 C# 中处理 Excel 和其他电子表格文件提供了一种快速、自然的方法。

ClosedXML 是一个用于读写 Excel 文件的 .NET 库,它能让开发人员更轻松地创建 Excel 2007+ 文件。它提供了一种很好的面向对象的方式来操作文件 (类似于 VBA) 无需处理麻烦的 XML 文档。它可用于任何 .NET 语言,如 C# 和 Visual Basic。 (VB).它提供了 OpenXML 的功能,但仍有一些功能没有实现。例如,宏、嵌入和图表。

结论

IronXL 它还有助于其他 Excel 操作,如单元格数据格式、排序和单元格样式。它还可以将 Excel 电子表格作为 System.Data.DataSetSystem.Data.DataTable.它支持基于控制台、网络服务器和桌面的应用程序。它还支持所有操作系统平台。

ClosedXML 是一个轻量级库,可使用 OpenXML API 读取、操作和编写 excel 应用程序,速度快且易于实现。它有助于所有主要的 excel 操作,如页面设置、冻结面板、超链接、表格和条件格式化。它没有开销或低性能问题。

相比之下,IronXL 和 ClosedXML 在处理 excel 电子表格时都非常快速和准确。在创建 excel 报告时,它们都不需要安装 Microsoft Office 或获得许可证。不过,IronXL 比 ClosedXML 更有优势,因为 ClosedXML 不是线程安全的。IronXL 易于使用,能将其他格式转换为 XLSX,还能将 XLSX 转换为 CSV 和 HTML 等其他格式。ClosedXML 不允许这种转换。通过这种相互转换,用户可以轻松灵活地处理其他文件格式。

现在,您可以用以下价格获得五款 Iron 产品 价格 1 个开发人员的精简版软件包中只有两个($1498) 和无限制的 5,998 美元,最多可节省 60%。

< 前一页
IronXL和FastExcel for .NET的比较
下一步 >
IronXL 与葡萄城 Excel Viewer 之间的比较

准备开始了吗? 版本: 2024.10 刚刚发布

免费NuGet下载 总下载量: 1,039,965 查看许可证 >