• .NET导出Excel之NPOI


    前段时间研究过微软的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使用手册

  • 相关阅读:
    caffe_实战之两个简单的例子(物体分类和人脸检测)
    《Caffe下跑AlxNet之数据处理过程》
    git使用小结
    说好的博客
    C++入门学习
    第一篇 一步一步看透C++
    第一百六十三节,jQuery,基础核心
    第一百六十二节,jQuery入门介绍
    第一百六十一节,封装库--JavaScript,完整封装库文件
    第一百六十节,封装库--JavaScript,ajax注册表单到数据库
  • 原文地址:https://www.cnblogs.com/umeall/p/9006462.html
Copyright © 2020-2023  润新知