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

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

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

开始课程

在 C# (.NET) 中操作 Excel:热门库概览



在现代 .NET 平台开发中,经常需要以编程方式与 Microsoft Excel 文件进行交互。这可能涉及创建报告、导入数据、导出表格或自动化文档流程。在本文中,我们将介绍三种最流行的用于在 C# 中操作 Excel 的库:EPPlus、ClosedXML 和 NPOI。每个库都有其自身的特点、优势和局限性。



1. EPPlus — 用于处理 XLSX 的强大工具



EPPlus 是用于处理 Office Open XML (XLSX) 格式的最流行库之一。它提供了用于创建、读取和格式化 Excel 文档的广泛 API。从版本 5 开始,EPPlus 根据 Polyform Noncommercial 许可证(仅免费用于非商业用途)分发,但对于商业项目需要购买许可证。



主要功能:

  • 完全支持单元格格式化(字体、颜色、边框、对齐)
  • 处理图表、数据透视表和条件格式
  • 支持公式和计算
  • 处理图像和批注
  • 处理大文件时的高性能


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



using OfficeOpenXml;

class Program{ static void Main() { ExcelPackage.LicenseContext = LicenseContext.NonCommercial; // 商业用途需要许可证 using (var package = new ExcelPackage()) { var worksheet = package.Workbook.Worksheets.Add("报告"); // 填充标题 worksheet.Cells["A1"].Value = "姓名"; worksheet.Cells["B1"].Value = "年龄"; worksheet.Cells["C1"].Value = "城市"; // 填充数据 worksheet.Cells["A2"].Value = "安娜"; worksheet.Cells["B2"].Value = 28; worksheet.Cells["C2"].Value = "莫斯科"; // 格式化 worksheet.Cells["A1:C1"].Style.Font.Bold = true; worksheet.Cells["A1:C1"].Style.Fill.PatternType = OfficeOpenXml.Style.ExcelFillStyle.Solid; worksheet.Cells["A1:C1"].Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.LightBlue); // 保存文件 package.SaveAs(new FileInfo("report.xlsx")); } }}


2. ClosedXML — 简单直观的 API



ClosedXML 是一个开源库(MIT 许可证),为处理 XLSX 文件提供了便捷且简洁的接口。它基于 DocumentFormat.OpenXml 构建,但隐藏了底层 API 的复杂性。ClosedXML 非常适合快速创建报告和简单表格。



ClosedXML 的优势:

  • 简单且可读性强的语法
  • 完全免费用于商业用途
  • 良好的样式和格式化支持
  • 内置对日期和公式的支持


使用 ClosedXML 从 Excel 读取数据的示例:



using ClosedXML.Excel;

class Program{ static void Main() { using (var workbook = new XLWorkbook("data.xlsx")) { var worksheet = workbook.Worksheet(1); // 逐行读取数据 foreach (var row in worksheet.RowsUsed()) { var name = row.Cell(1).GetValue<string>(); var age = row.Cell(2).GetValue<int>(); var city = row.Cell(3).GetValue<string>(); Console.WriteLine($"{name}, {ag

推荐