EPPlus 在 .NET Core 项目中的最佳实践教程
2025-04-24 12:05:49作者:沈韬淼Beryl
1. 项目介绍
EPPlus 是一个开源库,用于处理 Excel 文件,它提供了对 Excel 文件读写操作的支持。与微软的 Office Interop 库相比,EPPlus 体积更小,性能更优,并且不需要安装 Microsoft Office。本文将介绍如何在 .NET Core 项目中集成和使用 EPPlus,以及一些最佳实践。
2. 项目快速启动
首先,确保你的开发环境已经安装了.NET Core SDK。
安装 EPPlus
在你的 .NET Core 项目中,使用 NuGet 包管理器安装 EPPlus 包:
Install-Package EPPlus
创建 Excel 文件
以下是一个简单的示例,演示如何在 .NET Core 应用程序中创建一个 Excel 文件:
using OfficeOpenXml;
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
// 设置EPPlus的许可证上下文为非商业用途
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
// 创建一个新的Excel包
using (var package = new ExcelPackage())
{
// 添加一个工作表
var worksheet = package.Workbook.Worksheets.Add("Sheet1");
// 设置单元格值
worksheet.Cells[1, 1].Value = "序号";
worksheet.Cells[1, 2].Value = "姓名";
worksheet.Cells[1, 3].Value = "年龄";
// 添加一些数据
worksheet.Cells["A2"].Value = 1;
worksheet.Cells["B2"].Value = "张三";
worksheet.Cells["C2"].Value = 25;
worksheet.Cells["A3"].Value = 2;
worksheet.Cells["B3"].Value = "李四";
worksheet.Cells["C3"].Value = 30;
// 保存文件
FileInfo fi = new FileInfo(@"C:\路径\你的文件.xlsx");
package.SaveAs(fi);
}
}
}
读取 Excel 文件
以下是如何读取 Excel 文件并获取数据的一个示例:
using OfficeOpenXml;
using System;
using System.IO;
using System.Linq;
class Program
{
static void Main(string[] args)
{
// 设置EPPlus的许可证上下文为非商业用途
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
// 打开一个现有的Excel文件
FileInfo fi = new FileInfo(@"C:\路径\你的文件.xlsx");
using (var package = new ExcelPackage(fi))
{
// 获取工作表
var worksheet = package.Workbook.Worksheets["Sheet1"];
// 读取数据
int rowCount = worksheet.Dimension.Rows;
int colCount = worksheet.Dimension.Columns;
for (int row = 2; row <= rowCount; row++)
{
for (int col = 1; col <= colCount; col++)
{
Console.WriteLine(worksheet.Cells[row, col].Value);
}
}
}
}
}
3. 应用案例和最佳实践
单元格样式
在处理 Excel 文件时,你可能需要设置单元格的样式,例如字体、颜色和边框。以下是如何设置单元格样式的示例:
var cell = worksheet.Cells["A1"];
cell.Style.Font.Bold = true;
cell.Style.Font.Color.SetColor(System.Drawing.Color.Red);
cell.Style.Border.Top.Style = ExcelBorderStyle.Thick;
数据验证
数据验证可以帮助用户输入正确的数据类型。以下是如何添加数据验证的示例:
var validation = worksheet.DataValidations.AddIntegerValidation(worksheet.Cells["C2:C10"]);
validation.ShowInputMessage = true;
validation.ShowErrorMessage = true;
validation.PromptTitle = "输入整数";
validation.Prompt = "请输入一个整数";
validation.ErrorTitle = "无效的输入";
validation.Error = "您必须输入一个整数";
validation.Formula1 = 1;
validation.Formula2 = 100;
条件格式
条件格式可以突出显示符合特定条件的单元格。以下是如何应用条件格式的示例:
var range = worksheet.Cells["A2:C10"];
var format = range.StyleConditionalFormatting.AddThreeColorScale();
format Lowest = System.Drawing.Color.Red;
format.Middle = System.Drawing.Color.Yellow;
format.Highest = System.Drawing.Color.Green;
4. 典型生态项目
EPPlus 在开源社区中有广泛的应用,以下是一些典型的生态项目:
- ClosedXML:另一个用于处理 Excel 文件的库,与 EPPlus 类似。
- NPOI:一个开源的 .NET 类库,用于处理 Microsoft Office 文件。
- ExcelDataReader:一个开源库,用于快速读取 Excel 文件。
以上就是关于如何在 .NET Core 项目中使用 EPPlus 的最佳实践教程。通过这些内容,你可以开始在你的项目中高效地使用 EPPlus。
登录后查看全文
热门项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0101- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiMo-V2.5-ProMiMo-V2.5-Pro作为旗舰模型,擅⻓处理复杂Agent任务,单次任务可完成近千次⼯具调⽤与⼗余轮上 下⽂压缩。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00
项目优选
收起
暂无描述
Dockerfile
710
4.51 K
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
595
101
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.61 K
944
deepin linux kernel
C
28
16
Ascend Extension for PyTorch
Python
573
694
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
416
341
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
958
955
昇腾LLM分布式训练框架
Python
150
177
基于服务器管理南向接口技术要求实现的部件驱动库。Hardware component drivers framework with unified management interface
C++
15
77
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
1.43 K
116