在 C# (.NET) 中处理 Excel:最佳库和示例
处理 Excel 电子表格是 C# 企业开发中最常见的任务之一。无论是生成报告、导入数据还是自动化日常操作,您都需要一个可靠的工具。在本文中,我们将介绍 .NET 生态系统中用于处理 Excel 的三个流行库:EPPlus、ClosedXML 和 NPOI。您将了解它们的特点、优势,并看到代码示例。
1. EPPlus — 强大且现代的工具
EPPlus 是 .NET 中最流行的用于处理 Excel 文件 (.xlsx) 的库之一。它几乎支持 Excel 的所有功能:格式化、图表、数据透视表、条件格式等。从版本 5 开始,EPPlus 根据 Polyform Noncommercial 许可证(免费用于非商业用途)分发,商业用途需要购买许可证。
安装
Install-Package 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["A3"].Value = "伊万"; worksheet.Cells["B3"].Value = 35; worksheet.Cells["C3"].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); // 自动调整列宽 worksheet.Cells.AutoFitColumns();
// 保存 var file = new FileInfo("报告.xlsx"); package.SaveAs(file); } }}EPPlus 优点:
- 支持复杂对象:图表、数据透视表、迷你图
- 处理大文件时性能高
- 优秀的文档和活跃的社区
缺点:商业许可证收费,不支持 .xls(旧格式)。
2. ClosedXML — 简单易用
ClosedXML 是一个免费的开源库,提供便捷的 API 用于处理 Excel。它基于 OpenXML SDK 构建,但隐藏了所有复杂性,提供了直观的界面。非常适合快速创建报告和表格。
安装
Install-Package ClosedXML示例:创建带格式的文件
using ClosedXML.Excel;
class Program{ static void Main() { using (var workbook = new XLWorkbook()) { var ws = workbook.Worksheets.Add("销售"); // 标题 ws.Cell("A1").Value = "商品"; ws.Cell("B1").Value = "数量"; ws.Cell("C1").Value = "价格"; // 数据 ws.Cell("A2").Value = "笔记本电脑"; ws.Cell("B2").Value = 5; ws.Cell("C2").Value =