在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
使用 Excel 文件生成报告和建立数据库的能力已成为当今软件应用程序的基本要求。 现在有很多库可以让用户在没有 Microsoft Excel 的情况下完成这项工作。
在本文中,我们将讨论和比较如何使用 IronXL for .NET 和 Aspose Cells 这两个最流行的库,在 C# .NET 技术中以编程方式处理 Microsoft Excel 文档。
IronXL 和 Aspose Cells 都提供了在 .NET Framework 中创建、编辑和读取 Excel 文档的方法。 下一个问题是决定 C# Excel 库 您的项目最需要的是.NET、Java、Python 或 Node js。 本文将帮助您为自己的应用程序选择最佳方案。
让我们先看看这两个图书馆都提供了什么,然后再进行比较。
IronXL 是一个 .NET 库,可以用 C# 读取和编辑 Microsoft Excel 文档。 IronXL.Excel 是一个独立的 .NET 软件库,用于读取各种电子表格格式。 它不需要安装 Microsoft Excel,也不依赖于 Interop。
IronXL for .NET 是一个直观的 C# 应用程序接口,可让您在 .NET 中以快如闪电的性能读取、编辑和创建 Excel 电子表格文件。 IronXL完全支持.NET Core、.NET Framework、Xamarin、移动、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 格式。
通过集成 API,开发人员可以执行一些基本任务,如管理多个工作表、从头开始创建电子表格内容和样式、从不同数据源向工作表导入数据、添加常见和复杂的数学、财务和文本公式、操作图表、图片、注释、绘制对象等。
以下是 Aspose Cells 的一些突出特点:
渲染
打印
数据处理
智能标记
网格套件
导入/导出数据
本文其余部分继续如下:
创建控制台应用程序
IronXL C# 库安装
Aspose Cells 安装
创建并保存新的 Excel 工作簿和工作表
阅读 Excel 文件
使用 Excel 公式
Inter Convert 文件
许可
使用以下步骤创建一个控制台应用程序:
在 "附加信息 "页面中,指定您希望使用的框架版本。 我们将在本例中使用 .NET Framework 4.8**。
单击创建完成流程。
现在项目已经创建,我们几乎可以测试库了。 不过,我们仍然需要安装并将它们集成到我们的项目中。 让我们先安装 IronXL。
您可以使用以下方法下载并安装 IronXL 库:
使用 Visual Studio 和 NuGet 软件包。
直接下载 NuGet 软件包。
使用 DLL 手动安装。
让我们逐一进行详细了解。
Visual Studio 提供了 NuGet 包管理器,用于在项目中安装 NuGet 包。 您可以通过项目菜单或右键单击解决方案资源管理器中的项目来访问它。
然后,从浏览选项卡 -> 搜索 IronXL.Excel -> 安装
可以直接访问 NuGet 网站并下载软件包。 步骤如下
下载和安装 IronXL C# 库的另一种方法是利用以下步骤,通过开发人员命令提示符安装 IronXL NuGet 包。
打开开发人员命令提示符--通常可在 Visual Studio 文件夹中找到。
键入以下命令
PM > 安装-软件包 IronXL.Excel
.
在解决方案资源管理器中,右键单击 Program.cs 文件,然后单击查看代码。
using IronXL;
using IronXL;
Imports IronXL
全部完成! IronXL 已下载、安装并可随时使用。 不过,在此之前,我们应该先安装 Microsoft.Office.Interop.Excel.
创建项目后,通过项目菜单或右键单击解决方案资源管理器中的项目访问 NuGet 包管理器。
下载和安装 Aspose Cells C# 库的另一种方法是利用以下步骤,通过开发人员命令提示符安装**NuGet 软件包。
打开开发人员命令提示符--通常可在 Visual Studio 文件夹中找到。
键入以下命令
`PM> 安装-打包 Aspose.Cells``
您可以点击此链接直接从网站下载任何版本的 Aspose Cells: https://downloads.aspose.com/cells/net
或者
从 NuGet 网站下载: https://www.nuget.org/packages/Aspose.Cells/
在解决方案资源管理器中,右键单击 Program.cs 文件,然后单击查看代码。
using Aspose.Cells;
using Aspose.Cells;
Imports Aspose.Cells
工作簿是一个 Excel 文件,包含多个有行和列的工作表。 这两个库都提供了创建新 Excel 工作簿和工作表的功能。 让我们一步步来看看代码。
使用 IronXL.Excel 创建新 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 单元格中转换 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 天退款保证、一年的产品支持和更新、开发/分期/生产有效期以及永久许可证。(一次性购买). 精简版软件包从 $749 开始。
Aspose Cells 是开放源码 API,可授权用于商业用途。 Aspose.Cells 产品的评估版提供了完整的产品功能,但仅限于在一个程序中打开 100 个文件,并且有一个带有评估水印的额外工作表。 技术支持免费且无限制,同时提供给 License 用户和评估用户。 如果您想在没有评估版本限制的情况下测试 Aspose.Cells,请申请 30 天的临时许可证或从此处购买许可版本。 链接. 开发人员小型企业套餐的起价为 1199 美元。
相比之下,IronXL.Excel 和 Aspose.Cells 在使用 Excel 时会有正面交锋。 IronXL 和 Aspose.Cells 在提供 Excel 基本操作的同时,还提供 Excel 高级功能。 IronXL 可免费用于开发,而 Aspose.Cells 则有一个评估期,每个应用程序的文件数量限制为 100 个。 在此,非商业用途的 IronXL 具有优势。 此外,IronXL 还提供 JSON 格式的转换。