
IronXL 和 Aspose Cells 的比较
处理Excel文件以生成报告和构建数据库的能力已成为当今软件应用程序的必备功能。 现在有许多库可供使用,使用户可以不需要Microsoft Excel即可完成此操作。
本文将讨论和比较在 C# .NET 技术中使用两种最流行的库,IronXL 和 Aspose.Cells,如何以编程方式处理 Microsoft Excel 文档。
IronXL 和 Aspose.Cells 都提供了在 .NET Framework中创建、编辑和读取 Excel 文档的方法。 下一个问题是决定哪个C# Excel库最适合您的项目。 本文将帮助您为您的应用程序选择最佳选项。
首先,让我们看看这两个库各自提供了什么,然后再进行比较。
IronXL库
IronXL是一个.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公式一起工作。 每次编辑工作表时公式都会重新计算。
- 范围 — 易于使用的WorkSheet ["A1:B10"] 语法。 直观地组合和创建范围。
- 排序 — 排序范围、列和行。
- 样式 — 单元格视觉样式、字体、大小、背景图案、边框、对齐和数字格式。
Aspose.Cells
Aspose.Cells for .NET是一个用于加速电子表格管理和处理任务的Excel电子表格编程API。 该API支持构建跨平台应用程序,拥有生成、修改、转换、渲染和打印电子表格的能力。 此外,它无需安装Microsoft Excel或任何Microsoft Office Interop组件,而是提供了一组强大的API来处理所有Excel格式以及CSV和SpreadsheetML格式。
通过集成该API,开发人员可以执行基本任务,如管理多个工作表、从头创建电子表格内容和样式、从不同数据源导入数据到工作表、添加常见和复杂的数学、金融和文本公式、操作图表、图片、评论、绘图对象等。
Aspose.Cells Excel 电子表格API功能
以下是 Aspose.Cells 的一些突出功能:
渲染
- 图表转为图像。
- 工作表转为图像。
- 打印。
数据处理
- 应用格式化。
- 应用公式。
- 概要。
- 智能标记。
网格套件
- WinForms的桌面控件。
- ASP.NET的Web控件。
- 应用格式化。
- 应用公式。
- 导入/导出数据。
本文的其余部分继续如下:
- 创建控制台应用程序。
- IronXL C#库安装。
- Aspose.Cells 安装。
- 创建和保存新的Excel工作簿和工作表。
- 读取Excel文件。
- 使用Excel公式。
- 互相转换文件。
- 许可。
- 结论。
1. 创建控制台应用程序
使用以下步骤创建控制台应用程序:
- 启动Visual Studio 2022 IDE。
- 点击**"创建新项目"**。
- 在**"创建新项目"页面上,从下拉列表中选择C#、从平台列表中选择Windows**,并从**"项目类型"列表中选择控制台**。
- 从显示的项目模板中选择控制台应用程序(.NET Framework)。

- 点击下一步。
- 在附加信息屏幕中,指定您想使用的框架版本。 在本例中,我们将使用**.NET Framework 4.8**。

- 点击创建以完成该过程。
现在项目已创建,我们几乎准备好测试这些库了。 不过,我们仍需要将它们安装并集成到我们的项目中。 让我们先安装IronXL。
2. IronXL C# 库安装
您可以使用以下方法下载和安装IronXL库:
- 使用包含NuGet包的Visual Studio。
- 直接下载NuGet包。
- 使用DLL手动安装。
让我们仔细看一下每个方法。
2.1. 使用包含NuGet包的Visual Studio
Visual Studio 提供 NuGet 包管理器以便在您的项目中安装 NuGet 包。 您可以通过项目菜单或通过右键点击解决方案资源管理器中的项目访问它。

- 接下来,从浏览选项卡中搜索IronXL.Excel,然后安装。

- 我们完成了。
2.2. 直接下载 NuGet 包
可以通过直接访问 NuGet 站点并下载包来完成。 步骤如下
- 浏览到https://www.nuget.org/packages/IronXL.Excel
- 选择 "下载包"。
- 双击已下载的包。
- 将包安装好。
- 重新加载您的Visual Studio项目并开始使用它。
2.3. 使用DLL手动安装
下载和安装IronXL C#库的另一种方式是使用以下步骤,通过开发人员命令提示符安装IronXL NuGet包。
- 打开开发人员命令提示符——通常在Visual Studio文件夹中找到。
输入以下命令:
- 按回车键。
- 这将下载并安装该包。
- 重新加载您的Visual Studio项目并开始使用它。
2.4. 添加必要的Using指令
- 在解决方案资源管理器中,右键单击__Program.cs__文件,然后单击查看代码。
- 将以下using指令添加到代码文件的顶部:
using IronXL;Imports IronXL全部完成了! IronXL已下载、安装并准备使用。 然而,在此之前,我们应该安装Microsoft.Office.Interop.Excel。
3. Aspose.Cells 安装
3.1. 使用包含NuGet包的Visual Studio
创建项目后,通过项目菜单或右击您的项目访问NuGet包管理器。
- 现在,从浏览选项卡中,搜索 Aspose.Cells 然后安装。
3.2. 使用NuGet包管理器控制台
另一种下载和安装 Aspose.Cells C# 库的方法是按照以下步骤通过开发者命令提示符安装 NuGet 包。
- 打开开发人员命令提示符——通常在Visual Studio文件夹中找到。
输入以下命令:
- 按回车键。
- 这将下载并安装该包。
- 重新加载您的Visual Studio项目并开始使用它。
3.3. 直接下载
您可以通过点击此链接直接从官网下载任何版本的 Aspose.Cells: https://downloads.aspose.com/cells/net
或者:
从NuGet网站下载:https://www.nuget.org/packages/Aspose.Cells/
3.4. 添加必要的Using指令
- 在解决方案资源管理器中,右键单击__Program.cs__文件,然后单击查看代码。
- 将以下using指令添加到代码文件的顶部:
using Aspose.Cells;Imports Aspose.Cells4. 创建和保存新的Excel工作簿和工作表
一个工作簿是一个包含多个行和列工作表的Excel文件。 这两个库都提供创建新的Excel工作簿和工作表的功能。 让我们一步步来看一下代码。
4.1. 使用IronXL创建新的Excel工作簿和工作表
使用IronXL来创建一个新的Excel工作簿再简单不过了! 这只需要一行代码! 是的,真的。 在Program.cs文件中的static void main函数中添加以下代码:
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)使用IronXL可以创建XLS(旧版Excel文件)和XLSX(当前和新版文件)两种文件格式。
而且,创建默认工作表要简单得多:
var worksheet = workbook.CreateWorkSheet("IronXL Features");Dim worksheet = workbook.CreateWorkSheet("IronXL Features")现在您可以使用工作表变量设置单元格值,并几乎可以做Excel文件能做的一切。
保存Excel文件:
// Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");' Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx")4.2. 使用Aspose.Cells创建新的Excel工作簿和工作表
在创建电子表格及其内容之前,必须创建一个许可证对象以避免购买许可证版本时的评估限制。 代码如下
// Create a License object
License license = new License();
// Set the license of Aspose.Cells to avoid the evaluation limitations
license.SetLicense(dataDir + "Aspose.Cells.lic");' Create a License object
Dim license As New License()
' Set the license of Aspose.Cells to avoid the evaluation limitations
license.SetLicense(dataDir & "Aspose.Cells.lic")接下来,让我们看看创建工作簿和工作表的代码。 代码示例如下:
// Instantiate a Workbook object that represents Excel file.
Workbook wb = new Workbook();
// When you create a new workbook, a default "Sheet1" is added to the workbook.
Worksheet sheet = wb.Worksheets[0];' Instantiate a Workbook object that represents Excel file.
Dim wb As New Workbook()
' When you create a new workbook, a default "Sheet1" is added to the workbook.
Dim sheet As Worksheet = wb.Worksheets(0)保存Excel文件:
// Save spreadsheet
wb.Save("NewExcelFile.xlsx");' Save spreadsheet
wb.Save("NewExcelFile.xlsx")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");' Load WorkBook
Dim workbook = WorkBook.Load("Spreadsheets\\sample.xlsx")每个WorkBook可以有多个WorkSheet对象。 这些表示Excel文件中的工作表。 如果工作簿包含工作表,通过名称检索它们如下所示:
// Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");' Open Sheet for reading
Dim 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);
}' 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 cell5.2. 使用Aspose.Cells读取Excel文件
在Aspose.Cells中读取Excel文件也是一项简单的任务,因为它可以轻松管理多个工作表。 请看下面的代码:
// Creating a Workbook object and opening an Excel file using its file path
var workbook = new Workbook(@"Spreadsheets\\sample.xlsx");
// Adding new sheet
Worksheet sheet = workbook.Worksheets.Add("MySheet");' Creating a Workbook object and opening an Excel file using its file path
Dim workbook As New Workbook("Spreadsheets\\sample.xlsx")
' Adding new sheet
Dim sheet As Worksheet = workbook.Worksheets.Add("MySheet")读取单元格值的代码:
// Get Cells
Cells cells = sheet.Cells;
foreach (Cell cell in cells)
{
Console.WriteLine(cell.Value);
}' Get Cells
Dim cells As Cells = sheet.Cells
For Each cell As Cell In cells
Console.WriteLine(cell.Value)
Next cell6. 使用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 recalculate 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 recalculate all formula values in all sheets.
workbook.EvaluateAll()您还可以检索公式及其值:
// 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()6.2. 使用Aspose.Cells操作Excel公式
使用Aspose.Cells操作公式也很简单。 将以下代码添加到正在读取的Excel文件中。 代码如下
// Setting values
Cells cells = sheet.Cells;
// Setting formula
cells["A4"].Formula = "=SUM(A1:A3)";
// Calculating the results of formulas
workbook.CalculateFormula();' Setting values
Dim cells As Cells = sheet.Cells
' Setting formula
cells("A4").Formula = "=SUM(A1:A3)"
' Calculating the results of formulas
workbook.CalculateFormula()按照上述代码,您可以轻松设置更多公式。
7. 互相转换文件 — (Excel, XLS, XLSX, XLSB, XLSM, XPS Data Interchange)
IronXL 和 Aspose.Cells 都提供将 Excel xlsx 文件转换为不同格式,及从不同格式转换为 Excel 工作簿的功能。
7.1. 使用IronXL进行转换过程
过程非常简单容易。 通常只需一行代码即可完成。
CSV到Excel格式:
WorkBook workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
WorkSheet ws = workbook.DefaultWorkSheet;
workbook.SaveAs("CsvToExcelConversion.xlsx");Dim workbook As WorkBook = WorkBook.LoadCSV("test.csv", fileFormat:=ExcelFileFormat.XLSX, ListDelimiter:=",")
Dim ws As WorkSheet = workbook.DefaultWorkSheet
workbook.SaveAs("CsvToExcelConversion.xlsx")XLSX文件到XLSM:
WorkBook workbook = WorkBook.Load("test.xlsx");
// This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm");Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
' This is how you can export workbook to .xlsm format
workbook.SaveAs("test.xlsm")Excel到HTML具有选项:
WorkBook workbook = WorkBook.Load("test.xlsx");
var options = new HtmlExportOptions()
{
// This is how we can make row/column numbers visible in html document
OutputRowNumbers = true,
OutputColumnHeaders = true,
OutputHiddenColumns = true,
// This is how we can make hidden rows/columns visible in html document
OutputHiddenRows = true,
OutputLeadingSpacesAsNonBreaking = true
};
// This is how we can export workbook to the HTML file
workbook.ExportToHtml("workbook.html", options);Dim workbook As WorkBook = WorkBook.Load("test.xlsx")
Dim options As New HtmlExportOptions() With {
.OutputRowNumbers = True,
.OutputColumnHeaders = True,
.OutputHiddenColumns = True,
.OutputHiddenRows = True,
.OutputLeadingSpacesAsNonBreaking = True
}
workbook.ExportToHtml("workbook.html", options)7.2. 使用Aspose.Cells进行转换过程
在Aspose.Cells中转换Excel xlsx文件也相对简单。 请参阅下面的代码:
Excel到HTML:
// Load your source workbook
Workbook workbook = new Workbook("Book1.xlsx");
// Save file to html format
workbook.Save("out.html");' Load your source workbook
Dim workbook As New Workbook("Book1.xlsx")
' Save file to html format
workbook.Save("out.html")ODS文本到Excel:
// Load your source ods text file
Workbook workbook = new Workbook("book1.ods");
// Save as xlsx file
workbook.Save("ods_out.xlsx");' Load your source ods text file
Dim workbook As New Workbook("book1.ods")
' Save as xlsx file
workbook.Save("ods_out.xlsx")Excel工作表到SVG格式:
// Instantiate a workbook
var workbook = new Workbook();
// Populate worksheet's first cell
workbook.Worksheets[0].Cells["A1"].Value = "DEMO TEXT ON SHEET1";
// Convert Worksheets
workbook.Save("ConvertWorksheetToSVG_out.svg");' Instantiate a workbook
Dim workbook As New Workbook()
' Populate worksheet's first cell
workbook.Worksheets(0).Cells("A1").Value = "DEMO TEXT ON SHEET1"
' Convert Worksheets
workbook.Save("ConvertWorksheetToSVG_out.svg")8. 许可证
IronXL是一个开放商业的C# Excel库。 它适用于开发,并始终可以为商业部署获得许可证。 许可可供单项目使用、单个开发者、代理机构和全球公司,以及SaaS和OEM再分发。 所有许可证包括30天退款保证、一年产品支持和更新,可用于开发/演示/生产环境,还提供永久许可(一次性购买)。 Lite套餐起价为$999。
Aspose.Cells 是一个商业专有 .NET 库。 评估版提供全产品功能,但受限于在一个程序中打开 100 个文件,并且多一个带有评价水印的工作表。 技术支持是免费的、无限的,并且向许可和评估用户提供。 如果您想在没有评估版限制的情况下测试Aspose.Cells,请请求30天临时许可证或通过此链接购买许可证版本。 开发者小企业套餐起价为$1,175。
9. 结论
相比之下,IronXL和Aspose.Cells在处理Excel时旗鼓相当。 IronXL和Aspose.Cells都提供高级Excel功能以及基本的Excel操作。 IronXL适用于开发,而Aspose.Cells有评估期,文件限制为每个应用程序100个。 在此,IronXL在非商业用途中具有优势。 此外,IronXL还提供到JSON格式的转换及从JSON格式的转换功能。
{i:(Aspose 是其各自所有者的注册商标。 本网站与 Aspose 无关,也未得到 Aspose 的支持或赞助。 所有产品名称、徽标和品牌均为各自所有者的财产。 比较仅供参考,反映撰写时公开可用的信息。)}]

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



