NPOI导出Excel
Posted umeall
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NPOI导出Excel相关的知识,希望对你有一定的参考价值。
前段时间研究过微软的Excel导出、table输出Excel,而它们也存在一些弊端:
1、对于微软的Excel导出存在一些弊端,如:需要安装Office软件、速度问题;
2、table输出Excel在使用过程中发现一个致命的弊端,在一定情况下数据会丢失,因为部门的负责人会针对数据进行导出,分发给相关人员,而接收方接收后发现数据损坏。对于数据丢失我猜测应该属于导出方式,对于table输出我猜测应该是在本地会生成一些缓存文件以供导出的Excel进行动态调用,而发送给另一台机器缓存数据却未发送因此导致数据丢失。
NPOI导出Excel:
对于NPOI的使用的确很是方便,能够快速的制作出我们需要的导出功能,方法简单直白没有其它的依赖性,速度也不错。
1、使用前需要引用NPOI.dll
可以通过NuGet包管理,检索NPOI添加到项目中去:
2、使用方法。简单的使用我们只要注重:HSSFWorkbook、ISheet、IRow和ICell,从名称可以知道它们的大概用处,我们可以像写文章一样的使用它。
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使用手册
以上是关于NPOI导出Excel的主要内容,如果未能解决你的问题,请参考以下文章