在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
使用 Excel 文件生成报告和建立数据库的能力已成为当今软件应用程序的基本功能。现在有很多库可以让用户在没有 Microsoft Excel 的情况下完成这些工作。
在本文中,我们将讨论并比较如何使用 IronXL 和 Aspose Cells 这两个最流行的库,在 C# .NET 技术中以编程方式处理 Microsoft Excel 文档。
IronXL 和 Aspose Cells 都提供了在 .NET 框架中创建、编辑和读取 Excel 文档的方法。下一个问题是决定使用哪种 C# Excel 库 最适合您的项目。本文将帮助您选择最适合您应用的方案。
让我们先看看这两个库都提供了哪些功能,然后再进行比较。
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#。
Aspose.Cells for .NET是一款Excel电子表格编程API,可加快电子表格管理和处理任务的速度。该 API 支持跨平台应用程序的构建,这些应用程序能够生成、修改、转换、渲染和打印电子表格。此外,它不依赖于 Microsoft Excel 或任何 Microsoft Office Interop 组件的安装,而是提供一套强大的 API,可处理所有 Excel 格式以及 CSV 和 SpreadsheetML 格式。
通过集成应用程序接口,开发人员可以执行一些基本任务,如管理多个工作表、从头开始创建电子表格内容和样式、从不同数据源向工作表导入数据、添加常见和复杂的数学、财务和文本公式、操作图表、图片、注释、绘制对象等。
以下是 Aspose Cells 的一些突出功能:
渲染
数据处理
*网格套件***
本文其余部分继续如下:
1.创建控制台应用程序
2.安装 IronXL C# 库
3.Aspose 单元格安装
4.创建并保存新的 Excel 工作簿和工作表
5.读取 Excel 文件
6.使用 Excel 公式
7.相互转换文件
8.许可
9.结论
使用以下步骤创建控制台应用程序:
现在项目已创建,我们几乎可以测试库了。不过,我们仍需安装并将它们集成到项目中。让我们先安装 IronXL。
您可以使用以下方法下载和安装 IronXL 库:
1.使用 Visual Studio 和 NuGet 软件包。
2.直接下载 NuGet 包。
3.使用 DLL 手动安装。
让我们逐一详细了解。
Visual Studio 提供了 NuGet 包管理器,用于在项目中安装 NuGet 包。你可以通过 "项目菜单 "或右键单击 "解决方案资源管理器 "中的项目来访问它。
可直接访问 NuGet 网站并下载软件包。具体步骤如下
下载和安装 IronXL C# 库的另一种方法是使用以下步骤,通过开发人员命令提示符安装 IronXL NuGet 包。
键入以下命令
PM > Install-Package IronXL.Excel
`PM > 安装软件包 IronXL.Excel
1.在解决方案资源管理器中,右键单击 Program.cs 文件,然后单击查看代码。
2.在代码文件顶部添加以下 using 指令:
using IronXL;
using IronXL;
Imports IronXL
全部完成! IronXL 已下载、安装并准备就绪。不过,在此之前,我们应该先安装 Microsoft.Office.Interop.Excel.IronXL。
创建项目后,通过项目菜单或右键单击解决方案资源管理器中的项目访问 NuGet 包管理器。
下载和安装 Aspose Cells C# 库的另一种方法是使用以下步骤,通过开发人员命令提示符安装 **NuGet 软件包。
键入以下命令
PM> Install-Package Aspose.Cells
安装软件包
您可以点击此链接直接从网站下载任何版本的 Aspose Cells: https://downloads.aspose.com/cells/net
或者
从 NuGet 网站下载: https://www.nuget.org/packages/Aspose.Cells/
1.在解决方案资源管理器中,右键单击 Program.cs 文件,然后单击查看代码。
2.在代码文件顶部添加以下 using 指令:
using Aspose.Cells;
using Aspose.Cells;
Imports Aspose.Cells
工作簿是一个 Excel 文件,包含多行多列工作表。这两个库都提供了创建新 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)
两种 XLS (旧版 Excel 文件) 和 XLSX (当前和更新的文件版本) 文件格式。
而且,创建默认工作表更简单:
var worksheet = workbook.CreateWorkSheet("IronXL Features");
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");
'Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx")
在创建电子表格及其内容之前,必须先创建一个许可对象,以避免在购买许可版本时受到评估限制。代码如下
// 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")
接下来,让我们看看创建工作簿和工作表的代码。代码示例如下
// 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)
保存 Excel 文件:
//Save spreadsheet
wb.Save("NewExcelFile.xlsx");
//Save spreadsheet
wb.Save("NewExcelFile.xlsx");
'Save spreadsheet
wb.Save("NewExcelFile.xlsx")
这两个库都可以打开和读取现有的 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")
每个工作簿可以有多个工作表对象。这些对象代表 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")
读取单元格值的代码:
// 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
使用 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")
读取单元格值的代码:
//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
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();
// 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"
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()
使用 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()
按照上述代码,您可以轻松设置更多公式。
IronXL 和 Aspose Cells 都提供了将 Excel xlsx 文件转换为不同格式以及将不同格式文件转换为 Excel 工作簿的功能。
转换过程非常简单方便。通常只需一行代码即可完成。
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")
将 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")
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)
使用 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")
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")
将 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")
IronXL 是一个公开商业化的 C# Excel 库。它可免费用于开发,也可随时授权用于商业部署。 提供许可证 适用于单个项目使用、单个开发人员、机构和跨国公司,以及 SaaS 和 OEM 再分发。所有许可证都包括 30 天退款保证、一年的产品支持和更新、开发/分期/生产的有效性以及永久许可证。 (一次性购买).Lite 软件包从 $749 开始。
Aspose Cells 是开放源码 API,可授权用于商业用途。Aspose.Cells 产品的评估版提供完整的产品功能,但它仅限于在一个程序中打开 100 个文件,并且有一个带有评估水印的额外工作表。技术支持免费且不受限制,同时提供给许可用户和评估用户。如果您想在没有评估版限制的情况下测试 Aspose.Cells,请申请 30 天临时许可证或从以下链接购买授权版本 链接.开发人员小型企业套餐的起价为 1199 美元。
相比之下,IronXL 和 Aspose.Cells 在使用 Excel 时各有千秋。IronXL 和 Aspose.Cells 都提供高级 Excel 功能和基本 Excel 操作。IronXL 的开发是免费的,而 Aspose.Cells 则有评估期,每个应用程序的文件数量限制为 100 个。因此,IronXL 在非商业用途上更具优势。此外,IronXL 还提供 JSON 格式的转换功能。