每个 .NET 开发人员都必须知道的 3 个 Excel 库

以编程方式编辑 Excel 文件可能很困难,主要有两个原因。用户必须保持一致的界面和文档结构,这在使用电子表格时并不容易做到。

另一个原因是,在某些情况下哪些代码可以工作并不总是很清楚,尤其是在涉及复杂计算的情况下。以编程方式编辑 excel 文件很复杂的原因有很多。程序员必须将 Excel 文件中的数据转换成可用的格式;然后,他们必须解析数据并将其解析回来,这并不那么简单。

在这里,我为这个问题提供了一个解决方案。我将向您展示我们如何使用不同的 Excel 库以编程方式读取和编辑 Excel 文件,而不会有任何麻烦。让我们开始吧:

IronXL:.NET Excel 库

IronXL 是一个多功能且功能强大的库,用于打开、编辑、保存 Excel 文件、阅读和其他重要的 Excel 功能。它支持所有 .NET 项目模板,如 ASP.NET、Windows 应用程序和 .NET Core 应用程序。IronXL 对于开发人员来说非常易于在 .NET 应用程序中使用。

IronXL 不需要在我们必须使用 IronXL 库的本地计算机上安装 Microsoft Office。IronXL 也不使用 Excel Interop 进行 excel 操作。IronXL 使在 .NET 环境中处理 excel 文件变得非常简单、快速和直接。

IronXL 可以轻松执行所有 Excel 操作和计算,而无需详细的编程信息。

IronXL 使开发人员能够通过编写几行代码(如求和函数、多行、总列、读取 excel 文件、编写 excel 文件、修改 excel 表、添加列和行、删除列和行)来执行许多特殊的 excel 操作。

让我们看几个代码示例:

代码示例

读取 Excel 文件

using IronXL;
//Supported spreadsheet formats for reading include: XLSX, XLS, CSV and TSV
WorkBook workbook = WorkBook.Load("data.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();
//Select cells easily in Excel notation and return the calculated value, date, text or formula
int cellValue = sheet["A2"].IntValue;
// Read from Ranges of cells elegantly.
foreach (var cell in sheet["A2:B10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

Excel 范围单元格

using IronXL;
using System. Linq;
 
WorkBook workbook = WorkBook.Load("test.xls");
WorkSheet sheet = workbook.WorkSheets.First();
 

var range = sheet["A2:A8"];
//This is how we can iterate over our range and read or edit any cell
foreach (var cell in range)
{
    Console.WriteLine(cell.Value);
}
 
 
// Another Example
var oneMoreRange = sheet["A9:A10"];
 
//This is how we can combine our ranges into a single selection
var resultRange = range + oneMoreRange;
 

foreach (var cell in resultRange)
{
    Console.WriteLine(cell.Value);
}

要了解有关 IronXL 示例的更多信息,请单击此处。IronXL 支持所有主要操作系统,如 Windows、Linux 和 macOS。

定价计划

IronXL 有三个定价计划。基本套餐起价 499 美元。但它对于开发目的是免费的。它还提供 30 天免费试用。您可以从给定的图片中看到更多详细信息。

IronXL 定价计划

FastExcel:C# Excel 库

FastExcel是一个 C# excel 库,可帮助用户快速读取和写入 Excel 电子表格。它是一个开源库。在后台运行时占用的内存更少。它不使用 Open XML SDK 来编辑数据或与数据交互。它自己编辑 XML 文件。FastExcel 只需要 .NET Framework 4.5 或更高版本以及 .NET Core 2.0。

它提供基本的 Excel 功能,但不提供函数等高级功能。但我们可以使用快速 Excel 库添加新工作表、单元格区域、添加数据和许多其他内容。

让我们看一下代码示例:

代码示例

创建 Excel 文件

using (FastExcel.FastExcel fastExcel = new FastExcel.FastExcel(new FileInfo("Template.xlsx"), new FileInfo("Output.xlsx")))
{
 //Create a worksheet with some rows
 var worksheet = new Worksheet();
 var rows = new List();
 for (int rowNumber = 1; rowNumber < 100000; rowNumber++)
 {
  List cells = new List();
  for (int columnNumber = 1; columnNumber < 13; columnNumber++)
  {
   cells.Add(new Cell(columnNumber, columnNumber * DateTime.Now.Millisecond));
  }
  cells.Add(new Cell(13,"FileFormat" + rowNumber));
  cells.Add(new Cell(14,"FileFormat Developer Guide"));

  rows.Add(new Row(rowNumber, cells));
 }
 worksheet.Rows = rows;

 fastExcel.Write(worksheet,"sheet1");
}

行和单元格管理

using (FastExcel.FastExcel fastExcel = new FastExcel.FastExcel(new FileInfo("input.xlsx")))
{
 //Create a some rows in a worksheet
 var worksheet = new Worksheet();
 var rows = new List();

 for (int rowNumber = 1; rowNumber < 100000; rowNumber += 50)
 {
  List cells = new List();
  for (int columnNumber = 1; columnNumber < 13; columnNumber += 2)
  {
   cells.Add(new Cell(columnNumber, rowNumber));
  }
  cells.Add(new Cell(13,"File Format Developer Guide"));

  rows.Add(new Row(rowNumber, cells));
 }
 worksheet.Rows = rows;
 // Read the data
 fastExcel.Update(worksheet,"sheet1");
}

定价计划

它是一个开源库。因此,它没有定价计划。您可以将其用于 excel 的基本功能。

EPPlus:.NET Excel 库

EPPlus是一个 C Excel 库,提供对 Excel 对象和方法的访问,包括 VBA 和 API。借助 EPPlus,开发人员可以利用 Excel 的强大功能来构建高质量、复杂的应用程序或快速制作电子表格。

该库提供管理单元格、行和列的功能;使用工作表,创建数据透视表、图表和图形;操作数据透视表字段;处理图像,并将数据导出为其他格式。EPPlus 不依赖于任何其他库,例如 Microsoft Excel。EPPlus 不仅仅是一个静态库——它会随着 Excel 电子表格环境和用户需求的变化而不断发展。

您可以观察他们的变更日志,了解它是如何演变的。EPPlus 由 NuGet 分发。EPPlus 版本 5 从 3.5 版开始支持 .NET Framework,从 2.0 版开始支持 .NET Core。

定价计划

EPPlus 的定价计划有点混乱。他们没有提供有关定价计划如何运作以及它是否持续或我们是否必须年复一年购买的完整信息。

不幸的是,EPPlus 没有给出任何代码示例来演示它将如何使用。而且它也没有提供任何教程或免费试用版。

概括

所有图书馆都很棒,并且是各自领域中最好的。但是每个图书馆都有其优点和缺点。EPPlus 没有任何教程指南,开发人员不确定这个库将如何锻炼。但是,它有一个 Github 存储库。而且它的定价计划也不是很清楚。

Fast Excel 库也不错,但功能有限。但它是一个开源库,所以我们可以在商业项目中使用它。但在我看来,一个简短的 excel 库与大型项目不兼容。如果您使用 IronXL 或 EPPlus 库在您的大型商业项目中使用 excel 操作,将会有所帮助。

IronXL 库是一个成熟的库,具有我们在高级 Excel 应用程序中必须使用的所有高级功能。优点是它提供了 30 天的免费广告试用,因此很容易测试它是否兼容。