在 C# (.NET) 中操作 Excel:EPPlus 和 ClosedXML 库

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

在 C# (.NET) 中操作 Excel:EPPlus 和 ClosedXML 详细指南



在现代 .NET 平台开发中,经常需要以编程方式创建、读取和编辑 Excel 电子表格。这可能涉及生成报告、从数据库导入数据、导出统计数据或自动化业务流程。在本文中,我们将介绍 C# 中用于操作 Excel 的两个最流行且功能强大的库:EPPlus 和 ClosedXML。这两个库都使用 Open XML (XLSX) 格式,并且不需要安装 Microsoft Office。



为什么要使用 Excel 库?

手动为 XLSX 格式创建 XML 文件极其繁琐且容易出错。像 EPPlus 和 ClosedXML 这样的库提供了高级 API,隐藏了操作 Open XML 的所有复杂性。它们允许您:

  • 从头创建 Excel 文件,并完全控制格式。
  • 从现有表格中读取数据,支持各种单元格类型。
  • 编辑单元格、行、列和工作表。
  • 应用样式、字体、颜色、边框和条件格式。
  • 处理公式、数据透视表和图表。
  • 将数据导出为 PDF(EPPlus 付费版可用)。


EPPlus 库

EPPlus 是 .NET 中最古老且功能最全面的 Excel 操作库之一。它支持 XLSX 格式的所有主要功能,包括图表、数据透视表、条件格式和 VBA 宏。从版本 5 开始,EPPlus 转向了 LGPL 许可模式,并对商业使用有额外限制(年收入低于 100 万美元的项目可免费使用)。



安装 EPPlus

可以通过 NuGet 包管理器安装该库:

Install-Package EPPlus

或者通过 .NET CLI:

dotnet add package EPPlus


示例:使用 EPPlus 创建简单的 Excel 文件

以下代码演示了如何创建包含标题和数据的 Excel 文件,并应用基本格式:

using OfficeOpenXml;using OfficeOpenXml.Style;using System.Drawing;

public void CreateExcelWithEPPlus(){ // 设置许可上下文(EPPlus 5+ 必需) ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

using (var package = new ExcelPackage()) { // 添加新工作表 var worksheet = package.Workbook.Worksheets.Add("员工");

// 标题 worksheet.Cells[1, 1].Value = "姓名"; worksheet.Cells[1, 2].Value = "职位"; worksheet.Cells[1, 3].Value = "薪资";

// 标题样式 using (var range = worksheet.Cells[1, 1, 1, 3]) { range.Style.Font.Bold = true; range.Style.Fill.PatternType = ExcelFillStyle.Solid; range.Style.Fill.BackgroundColor.SetColor(Color.LightBlue); range.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; }

// 数据 worksheet.Cells[2, 1].Value = "伊万·伊万诺夫"; worksheet.Cells[2, 2].Value = "开发人员"; worksheet.Cells[2, 3].Value = 150000;

worksheet.Cells[3, 1].Value = "玛丽亚·彼得罗娃"; worksheet.Cells[3, 2].Value = "分析师"; worksheet.Cells[3, 3].Value = 120000;

// 数字格式 worksheet.Cells[2, 3, 3, 3].Style.Numberformat.Format = "#,##0";

// 自动调整列宽 worksheet.Cells[1, 1, 3, 3].AutoFitColumns();

// 保存文件 var fileInfo = new FileInfo("employees.xlsx"); package.SaveAs(fileInfo); }}


ClosedXML 库

ClosedXML 是一个轻量级且完全免费的库(许可证

推荐