LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C#操作Excel四种主流方案:NPOI、EPPlus、OpenXml和Microsoft.Office.Interop.Excel

admin
2025年12月20日 11:26 本文热度 726
序言

在C#开发中,Excel文件操作是常见需求。本文对比四种主流方案:NPOI、EPPlus、OpenXml和Microsoft.Office.Interop.Excel,提供代码示例与选型建议

方案对比与选型建议

方案
适用场景
优势
劣势
NPOI
服务器端/跨平台操作
开源免费,功能全面
复杂操作不如COM组件灵活
EPPlus
快速开发/简洁API需求
API简洁,符合使用习惯
仅支持Excel读写
OpenXml
高性能/批处理场景
直接操作文件流,内存占用低
学习曲线较陡
Interop.Excel
桌面应用/需完整Excel功能
支持复杂Excel操作
依赖Excel安装,资源管理复杂


从表里可以看出NPOINPOI 是一个开源的 .NET 库,可以操作 Microsoft Office 文档,包括 Excel 文件。

安装NPOI库

安装好库以后就可以在程序里面使用了
using NPOI.SS.UserModel;using NPOI.XSSF.UserModel;using NPOI.HSSF.Model;using NPOI.SS.Util;public static class ExcelHelper{    static readonly string fileName = "123.xls"//Debug目录下的文件      /*************使用NPOI读写电子表格类*************/ //ROW 行  Columns列
 public static void ReadExcel(string filePath) {     using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))     {         IWorkbook workbook = new XSSFWorkbook(fs);         ISheet sheet = workbook.GetSheetAt(0);         for (int rowIndex = 0; rowIndex <= sheet.LastRowNum; rowIndex++)         {             IRow row = sheet.GetRow(rowIndex);             if (row != null)             {                 for (int colIndex = 0; colIndex < row.LastCellNum; colIndex++)                 {                     ICell cell = row.GetCell(colIndex);                     if (cell != null)                     {                         //获取到数据,进行数据显示或绑定到DGV里面                     }                 }             }         }     }  }     public static void WriteExcel(string filePath)  {      IWorkbook workbook = new XSSFWorkbook();      ISheet sheet = workbook.CreateSheet("Sheet1");      IRow headerRow = sheet.CreateRow(0);      headerRow.CreateCell(0).SetCellValue("ProdBarcode");      headerRow.CreateCell(1).SetCellValue("ClampBarcode");      headerRow.CreateCell(2).SetCellValue("MachBarcode");      headerRow.CreateCell(3).SetCellValue("request_id");      headerRow.CreateCell(4).SetCellValue("BindingResult");      headerRow.CreateCell(5).SetCellValue("operation_user");      headerRow.CreateCell(6).SetCellValue("device_no");      headerRow.CreateCell(7).SetCellValue("rm");      headerRow.CreateCell(8).SetCellValue("BindingTime");      IRow dataRow = sheet.CreateRow(1);      dataRow.CreateCell(0).SetCellValue("667-98989898");      dataRow.CreateCell(1).SetCellValue("666-69696969");      dataRow.CreateCell(2).SetCellValue("400-45454545");      dataRow.CreateCell(3).SetCellValue("066-66666666");      dataRow.CreateCell(4).SetCellValue("001H1");      dataRow.CreateCell(5).SetCellValue("001I1");      dataRow.CreateCell(6).SetCellValue("001J1");      dataRow.CreateCell(7).SetCellValue("001L1");      dataRow.CreateCell(8).SetCellValue(DateTime.Now.ToString());      using (FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write))      {        workbook.Write(fs);      }
    }}
在其他类里面直接调用,也可以在窗体加载时调用
private void Server_Load(object sender, EventArgs e){    ExcelHelper.WriteExcel("123.xls");}
运行一下,Excel表里就插入了一条数据。

总结:

本文只对Excel的简单读写的使用进行了说明,大家可以对读写方法重新加入参数,每次把要写入的数据当作参数传进去就可以了。以后大家可以根据自己需求对excel文件进行读写操作。


阅读原文:原文链接


该文章在 2025/12/22 18:51:01 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved