NPOI导出Excel

前段时间研究过微软的Excel导出、table输出Excel,而它们也存在一些弊端:

  1、对于微软的Excel导出存在一些弊端,如:需要安装Office软件、速度问题;

  2、table输出Excel在使用过程中发现一个致命的弊端,在一定情况下数据会丢失,因为部门的负责人会针对数据进行导出,分发给相关人员,而接收方接收后发现数据损坏。对于数据丢失我猜测应该属于导出方式,对于table输出我猜测应该是在本地会生成一些缓存文件以供导出的Excel进行动态调用,而发送给另一台机器缓存数据却未发送因此导致数据丢失。

NPOI导出Excel:

  对于NPOI的使用的确很是方便,能够快速的制作出我们需要的导出功能,方法简单直白没有其它的依赖性,速度也不错。

  1、使用前需要引用NPOI.dll

 

    可以通过NuGet包管理,检索NPOI添加到项目中去:

   2、使用方法。简单的使用我们只要注重:HSSFWorkbookISheetIRowICell,从名称可以知道它们的大概用处,我们可以像写文章一样的使用它。

    HSSFWorkbook相当于一个Excel对象

    ISheet相当于Excel里的工作簿

    IRow相当于行

    ICell相当于列

    

 1 using System;
 2 using System.Collections.Generic;
 3 using System.IO;
 4 using System.Linq;
 5 using System.Text;
 6 using System.Threading.Tasks;
 7 using NPOI.HSSF.UserModel;
 8 using NPOI.SS.UserModel;
 9 using Sunc.Framework.Repository.Utility.Excel;
10 
11 namespace TestConsole
12 {
13     class Program
14     {
15         static void Main(string[] args)
16         {
17          
18             HSSFWorkbook workBook = new HSSFWorkbook();
19             ISheet sheet = workBook.CreateSheet("工作簿");
20             IRow row = sheet.CreateRow(0);
21             ICell cell = row.CreateCell(0);
22             cell.SetCellValue("孙超");
23 
24             MemoryStream ms = new MemoryStream();
25             workBook.Write(ms);
26             var buf = ms.ToArray();
27             using (FileStream fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + "a.xls", FileMode.Create, FileAccess.Write))
28             {
29                 fs.Write(buf, 0, buf.Length);
30                 fs.Flush();
31             }
32             Console.ReadKey();
33         }
34 
35 
36     }
37 }

  当然SetCellValue属于一个重载方法,供我们出入各种类型的值

  还有样式的设置

当然需求决定使用,对于微软的我们可以调用宏,这算是一个比较强大的功能了,但是对于需求不高的我们几乎使用不到,因此适合自己的才是最好的。

个人源码

参考手册:NPOI使用手册

猜你喜欢

转载自www.cnblogs.com/umeall/p/9006462.html