与其他组件比较

IronXL与Aspose Cells的比较

发布 2022年三月29日
分享:

使用 Excel 文件生成报告和建立数据库的能力已成为当今软件应用程序的基本功能。现在有很多库可以让用户在没有 Microsoft Excel 的情况下完成这些工作。

在本文中,我们将讨论并比较如何使用 IronXL 和 Aspose Cells 这两个最流行的库,在 C# .NET 技术中以编程方式处理 Microsoft Excel 文档。

IronXL 和 Aspose Cells 都提供了在 .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
  • System.Data 对象--以 System.Data.DataSet 和 System.Data.DataTable 对象的形式处理 Excel 电子表格。
  • 公式 - 可使用 Excel 公式。每次编辑工作表时,公式都会重新计算。
  • 范围 - 易于使用的工作表 ["A1:B10"] 语法直观地组合和创建范围。
  • 排序--对范围、列和行进行排序。
  • 样式--单元格视觉样式、字体、大小、背景图案、边框、对齐方式和数字格式。

Aspose Cells

Aspose.Cells for .NET是一款Excel电子表格编程API,可加快电子表格管理和处理任务的速度。该 API 支持跨平台应用程序的构建,这些应用程序能够生成、修改、转换、渲染和打印电子表格。此外,它不依赖于 Microsoft Excel 或任何 Microsoft Office Interop 组件的安装,而是提供一套强大的 API,可处理所有 Excel 格式以及 CSV 和 SpreadsheetML 格式。

通过集成应用程序接口,开发人员可以执行一些基本任务,如管理多个工作表、从头开始创建电子表格内容和样式、从不同数据源向工作表导入数据、添加常见和复杂的数学、财务和文本公式、操作图表、图片、注释、绘制对象等。

Aspose Cells Excel 电子表格应用程序接口功能

以下是 Aspose Cells 的一些突出功能:

渲染

  • 图表到图像
  • 工作表到图像
  • 打印

数据处理

  • 应用格式化
  • 应用公式
  • 总结
  • 智能标记

*网格套件***

  • WinForms 桌面控件
  • 适用于 ASP.NET 的网络控件
  • 应用格式化
  • 应用公式
  • 导入/导出数据

本文其余部分继续如下:

1.创建控制台应用程序

2.安装 IronXL C# 库

3.Aspose 单元格安装

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

5.读取 Excel 文件

6.使用 Excel 公式

7.相互转换文件

8.许可

9.结论

1.创建控制台应用程序

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

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

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

2.IronXL C#图书馆安装

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

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

2.直接下载 NuGet 包。

3.使用 DLL 手动安装。

让我们逐一详细了解。

2.1.使用 Visual Studio 和 NuGet 软件包

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

选择管理 NuGet 软件包
  • 然后,从浏览选项卡 -> 搜索 IronXL.Excel -> 安装
搜索 IronXL
  • 我们就大功告成了。

2.2.直接下载 NuGet 软件包

可直接访问 NuGet 网站并下载软件包。具体步骤如下

2.3.使用 DLL 手动安装

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

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

键入以下命令

PM > Install-Package IronXL.Excel `PM > 安装软件包 IronXL.Excel

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

2.4.添加必要的 Using 指令

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

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

using IronXL;
using IronXL;
Imports IronXL
VB   C#

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

3.Aspose 单元安装

3.1.使用 Visual Studio 和 NuGet 软件包

创建项目后,通过项目菜单或右键单击解决方案资源管理器中的项目访问 NuGet 包管理器。

  • 现在,从浏览选项卡 -> 搜索 Aspose Cells -> 安装

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

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

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

键入以下命令

PM> Install-Package Aspose.Cells 安装软件包

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

3.3.直接下载

您可以点击此链接直接从网站下载任何版本的 Aspose Cells: https://downloads.aspose.com/cells/net

或者

从 NuGet 网站下载: https://www.nuget.org/packages/Aspose.Cells/

3.4.添加必要的 Using 指令

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

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

using Aspose.Cells;
using Aspose.Cells;
Imports Aspose.Cells
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 文件能做的所有事情。

保存 Excel 文件:

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

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
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")
VB   C#

接下来,让我们看看创建工作簿和工作表的代码。代码示例如下

// 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.
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)
VB   C#

保存 Excel 文件:

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

5.读取 Excel 文件

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

5.1.使用 IronXL 读取 Excel 文件

IronXL WorkBook 类代表 Excel 工作表。要使用 C# 打开 Excel 文件,我们需要使用 WorkBook.Load 并指定 Excel 文件的路径 (.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.使用 Aspose.Cells 读取 Excel 文件

使用 Aspose 单元格读取 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 = workbook1.Worksheets.Add("MySheet");
// 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 = workbook1.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 = workbook1.Worksheets.Add("MySheet")
VB   C#

读取单元格值的代码:

//Get Cells
Cells cells = sheet.Cells;
foreach (var cell in cells)
{
    Console.WriteLine(cell.Value);
}
//Get Cells
Cells cells = sheet.Cells;
foreach (var cell in cells)
{
    Console.WriteLine(cell.Value);
}
'Get Cells
Dim cells As Cells = sheet.Cells
For Each cell In cells
	Console.WriteLine(cell.Value)
Next cell
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 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();
' 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()
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.使用 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
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()
VB   C#

按照上述代码,您可以轻松设置更多公式。

7.相互转换文件 (Excel、XlS、XlSX、XlSb、XlSM、XPS 数据交换)

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");
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")
VB   C#

XLSX 文件转换为 XLSM:**

WorkBook workbook = WorkBook.Load("test.xlsx");

//This is how you can export workbook to .xlsm format
workbook.SaveAs("test.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")
VB   C#

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);
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 = New HtmlExportOptions() With {
	.OutputRowNumbers = True,
	.OutputColumnHeaders = True,
	.OutputHiddenColumns = True,
	.OutputHiddenRows = True,
	.OutputLeadingSpacesAsNonBreaking = True
}

'This is how we can export workbook to the HTML file
workbook.ExportToHtml("workbook.html",options)
VB   C#

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
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")
VB   C#

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
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")
VB   C#

Excel 工作表转换为 SVG 格式:**

// Instantiate a workbook
var workbook = new Workbook();

// Populate worksheets first cell
workbook.Worksheets [0].Cells ["A1"].Value = "DEMO TEXT ON SHEET1";

// Convert Worksheets
workbook.Save("ConvertWorksheetToSVG_out.svg");
// Instantiate a workbook
var workbook = new Workbook();

// Populate worksheets 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 worksheets first cell
workbook.Worksheets (0).Cells ("A1").Value = "DEMO TEXT ON SHEET1"

' Convert Worksheets
workbook.Save("ConvertWorksheetToSVG_out.svg")
VB   C#

8.许可证发放

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

Aspose Cells 是开放源码 API,可授权用于商业用途。Aspose.Cells 产品的评估版提供完整的产品功能,但它仅限于在一个程序中打开 100 个文件,并且有一个带有评估水印的额外工作表。技术支持免费且不受限制,同时提供给许可用户和评估用户。如果您想在没有评估版限制的情况下测试 Aspose.Cells,请申请 30 天临时许可证或从以下链接购买授权版本 链接.开发人员小型企业套餐的起价为 1199 美元。

9.结论

相比之下,IronXL 和 Aspose.Cells 在使用 Excel 时各有千秋。IronXL 和 Aspose.Cells 都提供高级 Excel 功能和基本 Excel 操作。IronXL 的开发是免费的,而 Aspose.Cells 则有评估期,每个应用程序的文件数量限制为 100 个。因此,IronXL 在非商业用途上更具优势。此外,IronXL 还提供 JSON 格式的转换功能。

< 前一页
IronXL与Microsoft Office Interop Excel的比较

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

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