EPPlus轻量高效,适合.xlsx格式;NPOI功能全面,兼容.xls与.xlsx,支持样式、公式及老版本。选型依需求:简单场景用EPPlus,复杂格式或兼容性要求高则选NPOI。

处理Excel文件在C#开发中很常见,EPPlus和NPOI是两个主流的开源库,各自适合不同场景:EPPlus轻量、语法简洁,适合读写.xlsx(Office 2007+)格式;NPOI功能更全,兼容.xls和.xlsx,适合需要老版本支持或复杂格式操作的项目。
EPPlus:快速上手.xlsx操作
EPPlus基于Open XML标准,不依赖Excel程序,纯托管代码,性能好。注意从v6开始需商业授权(免费版限5个工作表),推荐用v5.8.7(MIT协议)或升级到v6+并确认授权合规。
安装NuGet包:Install-Package EPPlus -Version 5.8.7 读取Excel:用ExcelPackage打开文件,通过Workbook.Worksheets[0]获取工作表,用Cells[row, col].Value读值 写入Excel:新建ExcelPackage,添加工作表,用Cells[row, col].Value = “xxx”赋值,最后Save() 注意:必须调用ExcelPackage.LicenseContext = LicenseContext.NonCommercial;(v5)或按v6要求配置授权,否则运行时报错
NPOI:兼顾.xls与.xlsx,支持样式和公式
NPOI是Java POI的.NET移植版,API稍冗长但功能扎实,尤其适合需要保留单元格样式、合并单元格、图表、密码保护或读写.xls(Excel 97-2003)的场景。
安装NuGet包:Install-Package NPOI(自动包含HSSF/xssf支持) 读.xls用HSSFWorkbook,读.xlsx用XSSFWorkbook;写入同理,统一用IWorkbook接口屏蔽差异 设置字体、边框、背景色需通过IWorkbook.CreateCellStyle()和CreateFont()链式构建,比EPPlus略繁琐但更可控 公式计算需调用FormulaEvaluator.EvaluateAll(),否则Cell.CellFormula只存公式文本,Cell.NumericCellValue为0
选型建议与避坑提醒
不追求兼容老版本且项目简单,优先EPPlus;需处理.xls、模板填充、样式控制或企业级报表,选NPOI。两者都不支持图表渲染、宏执行或实时Excel交互。
EPPlus v6+在.NET 6+中需额外引用System.Drawing.Common(Windows平台默认可用,Linux/macOS需安装libgdiplus) NPOI读取含图片的Excel会跳过图片数据,如需提取图片得用底层ZIP流手动解析xlsx包 大文件(>10MB或>10万行)建议用流式读取(EPPlus的LoadFromCollection或NPOI的SXSSFWorkbook)避免内存溢出 中文乱码?确保源Excel编码正确,NPOI读取时不用特别处理,但导出CSV时需指定UTF-8 BOM
基本上就这些。两个库都成熟稳定,选一个上手练几次,读写Excel就不再发怵了。
以上就是C# 如何处理Excel文件 – EPPlus和NPOI库的使用的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1442601.html
微信扫一扫
支付宝扫一扫