.NET NPOI导出Excel

什么是NPOI?

  NPOI的由来其实是根据JAVA的POI演化而来的,有人就要问了那为什么叫NPOI呢?首先 “N” 代表的是 .NET,POI不用说就是根据JAVA的POI演化而来。

  NPOI官网地址:http://npoi.codeplex.com/

  相比于微软自带的导出导入技术,小编个人认为还是NPOI好用一点。NPOI缺点在哪呢?小编认为主要在Word文档这方面,相比于Excel,NPOI导出Word文档就不是那么“适用”了;

  好!废话就不说那么多了,直接上干货。

NPOI导出Excel文档?

  1、创建一个格式,比如:Excel格式、Word文档格式

  

     //创建Excel类
     var workbook = new HSSFWorkbook();    

 

  2、创建一个单元

        //创建表
        var table = workbook.CreateSheet("事业支出表");

  3、创建首行  说明:NPOI不能创建首列,只能创建首行,除非一行一行创建,创建完成后给第一个表格赋值

    //创建第一行
    var row0 = table.CreateRow(0);

  4、给第一行赋值    要想给行赋值,那么必须创建列

    ①:创建列    说明:i:代表创建多少那一列 ,行以及列都是用0开始     

    //创建列
    var cell = row0.CreateCell(i);

    ②:给每一列赋值  说明:在这里cell是同上的,上面创建的列名称是什么,想要给这一列赋值,名称就必须一样

    //赋值
    cell.SetCellValue("");

  5、样式

    ①:合并单元格   说明:这里小编只能一个行行一列列进行合并单元格,小编不知道有没有什么简单方式。如果有:请大佬留言告诉我,万分感谢

//第一个数字:代表从哪一行开始;第二个数字:是到哪一行结束;第三个数字:从哪一列开始;第四个数字:到哪一列结束
table.AddMergedRegion(new CellRangeAddress(0, 1, 0, 0)); table.AddMergedRegion(new CellRangeAddress(0, 1, 1, 1)); table.AddMergedRegion(new CellRangeAddress(0, 1, 2, 2)); table.AddMergedRegion(new CellRangeAddress(0, 1, 3, 3)); table.AddMergedRegion(new CellRangeAddress(0, 1, 4, 4)); table.AddMergedRegion(new CellRangeAddress(0, 1, 5, 5)); table.AddMergedRegion(new CellRangeAddress(0, 1, 6, 6)); table.AddMergedRegion(new CellRangeAddress(0, 1, 13, 13)); table.AddMergedRegion(new CellRangeAddress(0, 1, 20, 20)); table.AddMergedRegion(new CellRangeAddress(0, 1, 21, 21)); table.AddMergedRegion(new CellRangeAddress(0, 0, 7, 12)); table.AddMergedRegion(new CellRangeAddress(0, 0, 14, 19));

    ②:创建样式   说明:样式生命的时候必须是跟你创建的那个Excel格式名称相同的

//创建样式  

ICellStyle style = workbook.CreateCellStyle();
//创建字体
HSSFFont cellStyleFont = (HSSFFont)workbook.CreateFont();
cellStyleFont.Boldweight = 800; //字体加粗

style.SetFont(cellStyleFont); //将字体绑定到样式

 //设置单元格的样式:水平居中
  style.Alignment = HorizontalAlignment.Center;
  //设置单元格的样式:垂直居中
  style.VerticalAlignment = VerticalAlignment.Center;

 //给列赋值上样式

 cell.CellStyle = style;

    ③:导出文件


        //保存文件
        string strFilePath = "";

       string strGuid = Guid.NewGuid().ToString();//生成唯一标识
            string FilePath = "路径";//创建文件夹
            Directory.CreateDirectory(strFilePath);
            string Time = DateTime.Now.ToString("yyyyMMddHHmmss");
       //生成唯一的文件夹以及文件名称,防止放在一个冲突
using (var fs = File.OpenWrite($@"{strFilePath}\事业部收支表{Time}.xls")) { //写入文件 workbook.Write(fs); }

以上就是NPOI的导出Excel表格了,如果有哪里说的不仔细,请留言告诉小编,小编只要不是特别忙就会回复。

嘿嘿!首次分享。如果有哪里的说的不对的地方,请大佬们留言指正一下,万分感谢。

 

路漫漫其修远兮,吾将上下而求索。

加油!

 

 

 

posted @ 2021-06-17 17:41  叫我小胡  阅读(1388)  评论(1)    收藏  举报