对比 IronXL 和 GemBox.Spreadsheet
处理Excel文件以生成报告和构建数据库的能力已成为当今软件应用程序的必备功能。 有很多库可以让用户在不使用 Microsoft Excel 的情况下完成翻译。
在本文中,我们将讨论如何使用两个最流行的 Excel Spreadsheet 库在 C#.NET 中以编程方式处理 Microsoft Excel 文档:IronXL 和 GemBox.Spreadsheet。
IronXL 和 GemBox.Spreadsheet 都提供了在 .NET 应用程序中创建、编辑和读取 Excel 文档的方法。 那么,如何决定哪一种最适合您的项目呢? 本文将对这两个库进行比较,帮助您决定项目的最佳选择。
IronXL库
IronXL for .NET 是一个.NET C# 库,便于阅读和编辑各种电子表格格式。 它不需要安装 Microsoft Excel,也不需要 Interop。IronXL 完全支持 .NET Core、.NET Framework、Xamarin、Mobile、Linux、macOS 和 Azure。
IronXL功能集
- 从 XLS/XLSX/CSV/TSV 加载、读取和编辑数据
- 导出并保存为不同格式--XLS/XLSX/CSV/TSV/JSON
System.Data对象 - 它可作为System.Data.DataSet和System.Data.DataTable对象与 Excel WorkBook 电子表格配合使用。- 可使用公式 - 可使用 Excel 公式。 每次编辑工作表时公式都会重新计算。
- 可与范围一起使用--其易于使用的工作表语法可让您直观地创建和组合范围。
- 过滤和排序 - 它可以对范围、列和行进行排序。
- 样式单元 - 视觉样式、字体、大小、背景图案、边框、对齐方式和数字格式。
GemBox.电子表格
GemBox.Spreadsheet 是一个库,可让您在 .NET C# 应用程序中创建、读取、写入、编辑、转换和打印电子表格文件。 它比 Microsoft Excel 自动化快达 250 倍!
GemBox.电子表格 API 功能
- 阅读 Excel 文件(XLSX、XLS、ODS)、文本文件(CSV、TXT)和 HTML 文件。
- 创建电子表格并将其转换为 XLSX、XLS、ODS、CSV、TXT、HTML、PDF、PDF/A、XPS 和图像格式。
- 在 WPF、ASP.NET、ASP.NET Core 和 Windows.Forms 应用程序中查看和编辑电子表格。
- 使用其计算引擎应用单元格公式。
- 创建和编辑工作表、行、列、单元格、公式、图像、图表、形状、文本框、表格、单元格样式和格式以及透视表。
- 操作页眉、页脚和文档属性。
- 编辑单元格组、数据概述、数据验证、工作表保护和打印/查看选项。
- 从
System.Data.DataSet和System.Data.DataTable导入和导出电子表格数据。 - 打印 Excel 电子表格。
本文的其余部分继续如下:
- 创建控制台应用程序
- 安装IronXL C#库 3.GemBox.Spreadsheet 安装 4.创建新的 Excel 工作簿 5.阅读 Excel 文件
- 使用Excel公式 7.Inter Convert 文件
- 授权
- 结论
1. 创建控制台应用程序
以下步骤将帮助您创建一个控制台应用程序:
- 下载并安装最新的 Visual Studio IDE。
- 启动 Visual Studio 并点击"创建新项目"。
然后,从显示的项目模板中选择 Console App (.NET Framework) C#。

控制台应用程序
- 点击下一步。
在此,请指定您希望使用的 框架版本。 建议使用最新版本。

配置项目
- 单击创建完成流程。
现在,项目将被创建并准备就绪。
2. IronXL C#库安装
可使用以下方法下载和安装 IronXL 库:
1.通过使用 Visual Studio 与 NuGet 包管理器。 2.下载并手动安装 DLL。
2.1.Visual Studio 与 NuGet 包管理器。
Visual Studio 2022 提供了 NuGet 包管理器,用于在项目中安装 NuGet 包。 您可以通过多种方式访问它:通过项目菜单,或在解决方案资源管理器中右键单击您的项目。

软件包管理器
- 在 "浏览 "选项卡中搜索 "IronXL.Excel",然后单击 "安装 "按钮添加该库。
- 完成这一过程后,IronXL 即已成功安装。
2.2.手动下载并安装 DLL.
下载和安装 IronXL Library 的另一种方法是使用 NuGet 软件包管理器控制台。
- 打开 Developer Command Prompt 控制台。
键入以下命令:
Install-Package IronXL.Excel
- 按回车键。 这将自动下载软件包并安装到您的项目中。
2.4.包含 IronXL 库。
1.打开 Program.cs 文件。 2.在代码文件顶部添加以下代码行:
using IronXL;using IronXL;3.GemBox.Spreadsheet 安装
在 NuGet 软件包管理器中使用以下命令安装 GemBox.Spreadsheet。
Install-Package GemBox.Spreadsheet

搜索 GemBox.Spreadsheet
或者,您可以下载并运行安装程序。
接下来,像之前一样打开 program.cs 文件,并在上一节中添加的 using 语句下方添加以下代码行:
using GemBox.Spreadsheet;
// If using Professional version, put your serial key below.
SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");using GemBox.Spreadsheet;
// If using Professional version, put your serial key below.
SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY");4.创建并保存新 Excel 工作簿
Excel 工作簿可以包含多个工作表。 这两个库都提供了创建包含一个或多个工作表的 Excel 工作簿的功能。 让我们看看每个库是如何做到这一点的。
4.1. 使用IronXL创建新的Excel工作簿和工作表
使用 IronXL.Excel 创建一个新的 Excel 工作簿非常简单!
在 Program.cs 文件中添加以下代码:
var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
var worksheet = workbook.CreateWorkSheet("IronXL Features");
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");var workbook = WorkBook.Create(ExcelFileFormat.XLSX);
var worksheet = workbook.CreateWorkSheet("IronXL Features");
//Save spreadsheet
workbook.SaveAs("NewExcelFile.xlsx");4.2.使用 GemBox.Spreadsheet 新建 Excel 工作簿和工作表
在 GemBox 中创建 Excel 工作簿也非常简单,如以下代码片段所示:
// Create a new empty Excel file.
var workbook = new ExcelFile();
// Create a new worksheet and set cell A1 value to 'Hello world!'.
workbook.Worksheets.Add("Sheet 1").Cells["A1"].Value = "Hello world!";
// Save to XLSX file.
workbook.Save("Spreadsheet.xlsx");// Create a new empty Excel file.
var workbook = new ExcelFile();
// Create a new worksheet and set cell A1 value to 'Hello world!'.
workbook.Worksheets.Add("Sheet 1").Cells["A1"].Value = "Hello world!";
// Save to XLSX file.
workbook.Save("Spreadsheet.xlsx");5.读取 Excel 文件
IronXL 和 GemBox 都能从现有 Excel 文件中读取数据。 让我们逐一查看每个库的示例代码。
5.1.使用 IronXL.Excel 读取 Excel 文件。
IronXL.Excel 中的 WorkBook 类表示 Excel 表单。 要在 C# 中打开并读取 Excel 文件,我们需要使用 WorkBook.Load 并指定 Excel 文件(.xlsx)的准确路径。
以下代码加载了一个电子表格:
// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
// Open Sheet for reading
var worksheet = workbook.GetWorkSheet("sheetnamegoeshere");// Load WorkBook
var workbook = WorkBook.Load(@"Spreadsheets\\sample.xlsx");
// Open Sheet for reading
var 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);
}5.2.使用 GemBox.Spreadsheet 读取 Excel 文件
GemBox.Spreadsheet 允许从您的 C# 应用程序中快速读取 Excel 文件。 以下代码说明了如何打开和读取文件。
var workbook = ExcelFile.Load("SimpleTemplate.xlsx");
var worksheet = workbook.Worksheets["sheetnamegoeshere"];
foreach (var cell in worksheet.Cells.GetSubrange("A2", "A20"))
{
Console.WriteLine("Cell {0} has value '{1}'", cell.Name, cell.Value);
}var workbook = ExcelFile.Load("SimpleTemplate.xlsx");
var worksheet = workbook.Worksheets["sheetnamegoeshere"];
foreach (var cell in worksheet.Cells.GetSubrange("A2", "A20"))
{
Console.WriteLine("Cell {0} has value '{1}'", cell.Name, cell.Value);
}6. 使用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"
var formulaValue = worksheet["G30"].Value;
//Get the formula as a string. e.g., "Max(C3:C7)"
var formulaString = worksheet["G30"].Formula;
//Save your changes with updated formulas and calculated values.
workbook.Save();// Get the formula's calculated value. e.g., "52"
var formulaValue = worksheet["G30"].Value;
//Get the formula as a string. e.g., "Max(C3:C7)"
var formulaString = worksheet["G30"].Formula;
//Save your changes with updated formulas and calculated values.
workbook.Save();6.2.使用 GemBox.Spreadsheet 处理 Excel 公式
GemBox.Spreadsheet 提供了大量 Excel 公式功能,包括数学、统计、逻辑、查找、财务等。 让我们来看看如何使用它们。
// Set Formulas
worksheet.Cells["A2"].Value = "=1 + 1";
worksheet.Cells["A3"].Value = "=3 * (2 - 8)";
worksheet.Cells["A10"].Value = "=SIGN(B9)";
worksheet.Cells["A11"].Value = "=SUM(B2:B10)";
workbook.Save("Formula Calculation.xlsx");// Set Formulas
worksheet.Cells["A2"].Value = "=1 + 1";
worksheet.Cells["A3"].Value = "=3 * (2 - 8)";
worksheet.Cells["A10"].Value = "=SIGN(B9)";
worksheet.Cells["A11"].Value = "=SUM(B2:B10)";
workbook.Save("Formula Calculation.xlsx");7.相互转换文件--(Excel、XLS、XLSX、XLSb、XLSM、XPS 数据交换)
IronXL 和 GemBox.Spreadsheet 都提供了在不同电子表格文件类型之间进行转换的功能。
7.1.使用 IronXL 转换电子表格类型
CSV 至 Excel 格式
var workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
var ws = workbook.DefaultWorkSheet;
workbook.SaveAs("CsvToExcelConversion.xlsx");var workbook = WorkBook.LoadCSV("test.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
var ws = workbook.DefaultWorkSheet;
workbook.SaveAs("CsvToExcelConversion.xlsx");将 XLSX 文件转换为 XLSM 文件
var workbook = WorkBook.Load("test.xlsx");
// This is how you can export the workbook to .xlsm format
workbook.SaveAs("test.xlsm");var workbook = WorkBook.Load("test.xlsx");
// This is how you can export the workbook to .xlsm format
workbook.SaveAs("test.xlsm");Excel 转 HTML(带选项)
var workbook = WorkBook.Load("test.xlsx");
var options = new HtmlExportOptions()
{
// This is how we can make row/column numbers visible in the HTML document
OutputRowNumbers = true,
OutputColumnHeaders = true,
OutputHiddenColumns = true,
// This is how we can make hidden rows/columns visible in the HTML document
OutputHiddenRows = true,
OutputLeadingSpacesAsNonBreaking = true
};
// This is how we can export the workbook to the HTML file
workbook.ExportToHtml("workbook.html", options);var workbook = WorkBook.Load("test.xlsx");
var options = new HtmlExportOptions()
{
// This is how we can make row/column numbers visible in the HTML document
OutputRowNumbers = true,
OutputColumnHeaders = true,
OutputHiddenColumns = true,
// This is how we can make hidden rows/columns visible in the HTML document
OutputHiddenRows = true,
OutputLeadingSpacesAsNonBreaking = true
};
// This is how we can export the workbook to the HTML file
workbook.ExportToHtml("workbook.html", options);7.2.使用 GemBox.Spreadsheet 转换电子表格类型
将 XLSX 文件转换为 PDF 文件
var workbook = ExcelFile.Load("ComplexTemplate.xlsx");
workbook.Save("Convert.pdf", new PdfSaveOptions() { SelectionType = SelectionType.EntireFile });var workbook = ExcelFile.Load("ComplexTemplate.xlsx");
workbook.Save("Convert.pdf", new PdfSaveOptions() { SelectionType = SelectionType.EntireFile });将 XLSX 文件转换为图像
// Load an Excel file into the ExcelFile object.
var workbook = ExcelFile.Load("CombinedTemplate.xlsx");
// Create image save options.
var imageOptions = new ImageSaveOptions(ImageSaveFormat.Png)
{
PageNumber = 0, // Select the first Excel page.
Width = 1240, // Set the image width.
CropToContent = true // Export only the sheet's content.
};
// Save the ExcelFile object to a PNG file.
workbook.Save("Output.png", imageOptions);// Load an Excel file into the ExcelFile object.
var workbook = ExcelFile.Load("CombinedTemplate.xlsx");
// Create image save options.
var imageOptions = new ImageSaveOptions(ImageSaveFormat.Png)
{
PageNumber = 0, // Select the first Excel page.
Width = 1240, // Set the image width.
CropToContent = true // Export only the sheet's content.
};
// Save the ExcelFile object to a PNG file.
workbook.Save("Output.png", imageOptions);CSV 文件到 Excel.
ExcelFile.Load("CSVTemplate.csv").Save("Convert.xlsx");ExcelFile.Load("CSVTemplate.csv").Save("Convert.xlsx");同样,您也可以使用 GemBox.Spreadsheet 在 C# 应用程序中的 XLS、XLSX、ODS、CSV 和 HTML 文件之间进行转换。
8. 许可证
IronXL 是一个商用 C# Excel 库。 出于开发目的,它是完全免费的,但用于商业部署则必须获得许可。 所有 IronXL 许可证均可用于单个项目、单个开发人员、代理机构和全球性公司,无论是否进行 SaaS 和 OEM 再分发。 每个许可证都包含 30 天退款保证、一年的产品支持和更新、开发/分期/生产的有效性以及永久许可证(一次性购买)。 Lite License 起价为 $799。
GemBox.Spreadsheet 也是一个商业库。 个人和商业应用均可免费使用。 不过,也可以获得专业使用 License。 其 License包括个人开发者、小型团队和大型公司的使用。 它提供免版税的部署(无服务器或 OEM 许可)、12 个月的免费技术支持以及免费的错误修复和新版本发布。 单个开发者软件包从 $890 开始。
9.应使用哪个 .NET 电子表格库?
本文展示了这两个库如何让用户轻松加载、阅读、编辑和转换 Microsoft Excel 电子表格。 IronXL 和 GemBox.Spreadsheet 都为完成这些活动提供了独特而强大的方法,它们本身就是完成非常一般的读写自动化任务的令人信服的选择。
那么,开发人员应该在其项目中使用哪个 .NET Excel 库呢?
以下是读者在下一个大项目中选择使用 IronXL 还是 GemBox.Spreadsheet 时可以考虑的一些要点:
1.可访问性。 IronXL 优先考虑易用性、准确性和速度。 设计该库的目的是让用户能够以尽可能少的代码行数快速完成常见的 Excel 编程任务(加载、读取、写入、编辑、范围选择等)。 网站上有大量 教程、操作指南、和代码示例,旨在帮助用户入门,并尽可能快速、轻松地完成他们的重大目标。 此外,IronXL 还拥有一支 24/5 全天候待命的工程师团队,可随时帮助用户解决任何问题。
如果支持、用户友好性和实施速度是最重要的,开发人员可以考虑使用 IronXL。
请注意,GemBox.Spreadsheet 网站还提供了详细示例集,以帮助开发人员充分利用其强大的功能集。
2.通用性。 GemBox.Spreadsheet 的功能集使开发人员能够完成 Excel 自动化任务,远远超出本教程所讨论的基本任务。 用户可以在 Excel 工作表上绘制图形,使用自定义字体编辑工作表,使用VBA 宏创建新的工作表,使用创建新的工作表。com/spreadsheet/examples/c-sharp-vb-net-excel-form-controls/123">form 控件和图表组件,以及使用加密和数字签名将 Excel 文档保存为 PDF,等等。 GemBox.Spreadsheet 支持 200 多种不同的公式。 此外,该库具有非常复杂的单元格范围引用机制。
GemBox.Spreadsheet 对于要求电子表格管理任务具有灵活性和强大功能的开发人员来说是一个令人信服的选择。
3.互操作性。 GemBox.Spreadsheet 可与 Excel、LibreOffice 和 Open Office 电子表格配合使用,支持或保留这些产品的大部分独特功能。 因此,需要电子表格在这些办公产品中运行的开发人员可以考虑将 GemBox.Spreadsheet 作为一个有吸引力的替代选择。
4.可转换性。 IronXL.Excel 可以将数据导出为多种常规开放格式(XML、HTML、JSON、CSV、TSV)以及任何 Excel 文档类型。 IronXL 还可以将电子表格数据转换为 二进制、字节和流数据,以及转换为 System.Data 数据结构。
GemBox.Spreadsheet 还能将电子表格数据转换为 System.Data.DataSet 和 System.Data.DataTable 数据类型。此外,该库还可导入和导出 HTML,并可将数据转换为图像和符合 PDF/A 标准的文档。
在这种情况下,开发人员对这两个库的选择取决于其项目所需的数据/文件类型。
5.可负担性。 IronXL 和 GemBox.Spreadsheet 都需要高级许可证才能用于商业用途。
就价格而言,IronXL 和 GemBox.Spreadsheet 之间的决定因素最终将取决于预算、团队规模和长期开发考虑。 但值得注意的是,IronXL 的起始 $799 许可价格可能对价格敏感的开发人员和团队非常有吸引力。
*试用 IronXL 的 免费试用版,了解 IronXL 的效率。 购买完整的Iron Suite,只需支付两个 IronXL 许可证的价格,即可获得四个额外的库。
常见问题解答
我如何在.NET应用程序中创建Excel文档?
您可以使用IronXL在.NET应用程序中创建Excel文档。它允许您以编程方式生成Excel文件,自定义样式并管理数据,而无需安装Microsoft Excel。
我在.NET Excel库中应该寻找哪些特性?
选择.NET Excel库时,考虑特性如公式处理、数据操作、样式自定义、格式转换以及对多种电子表格格式的支持。IronXL提供了所有这些特性,同时注重易用性和速度。
IronXL和GemBox.Spreadsheet在性能方面如何比较?
IronXL以其易用性和速度而闻名,特别适合简单的Excel自动化任务。GemBox.Spreadsheet提供广泛的功能和灵活性,适用于较复杂的Excel任务,并具有高度的互操作性。
我可以在.NET中将Excel文件转换为其他格式吗?
是的,使用IronXL,您可以将Excel文件转换为多种格式,如XML、HTML、JSON和CSV。GemBox.Spreadsheet允许转换为PDF、图像等,提供广泛的格式选项。
我如何在.NET应用程序中处理Excel公式?
IronXL支持处理Excel公式,允许您设置、编辑和检索它们。每当编辑工作表时,它会自动重新计算公式,保证您的数据保持准确。
在.NET项目中使用Excel库有哪些许可选项?
IronXL提供用于部署的商业许可证,开发用途免费,提供单项目、开发者、代理和公司等选项。GemBox.Spreadsheet提供非商业用途的免费使用及商业用途的专业许可证。
我如何将.NET Excel库安装到我的项目中?
要将IronXL安装到您的.NET项目中,可以使用Visual Studio的NuGet包管理器或手动下载DLL并将其添加到您的项目中。此过程允许您将IronXL的功能集成到您的应用程序中。
我应该为我的项目需求选择哪个.NET Excel库?
IronXL和GemBox.Spreadsheet之间的选择取决于您的特定项目需求。IronXL适合优先考虑简便性和支持的用户,而GemBox.Spreadsheet适合需要高级Excel自动化功能的用户。






