• NPOI用Excel模板导出Excel文件(一)基本操作


    最近接触了用c#导出Excel文件的一些操作。

    使用NPOI的优势是,开源,操作灵活,不需要下载OFFICE软件,速度快,不过听说,数据量过大的时候,不是很好用,大概那都是几兆的时候吧,不过目前用于我的需要,基本是够了。

    关于NPOI的基本操作:http://blog.csdn.net/pan_junbiao/article/details/39717443

    使用Npoi需要using几个命名空间:

    1     using NPOI;
    2     using NPOI.HSSF.UserModel;
    3     using NPOI.XSSF.UserModel;
    4     using NPOI.XSSF.Util;
    5     using NPOI.SS.UserModel;
    6     using NPOI.SS.Util;

    首先打开文件,需要文件路径,操作模式以及操作权限。

    这里打开excel文件有两种对应格式,HSSFWorkbook和XSSFWorkbook,都是继承的IWorkbook。

    GetSheet()函数,获取sheet名的方式,获取sheet来操作。

    1 FileStream file = new FileStream(FileSer, FileMode.Open, FileAccess.Read);//读入excel模板
    2 //HSSF适用2007以前的版本,XSSF适用2007版本及其以上的。
    3 XSSFWorkbook UnionBook = new XSSFWorkbook(file);
    4 XSSFSheet unionSheet = null;
    5 unionSheet = (XSSFSheet)UnionBook.GetSheet("sheet1");

    NPOI操作excel的方式,有两个特点:

    1.它的操作,都是基于Excel的最小单文单元格来的,而且要先获取行getrow(int rownum),然后再获取该行的单元格,getcell(int cellnum)。

    2.它的每次获取时,对行或单元格的操作,基于整个sheet,都是从0开始的。也就是要获取第一行的话,是getrow(0),获取第一个单元格的话,是getcell(0)。

    按理说,用了XSSFSheet,应该用XSSFRow和XSSFCell的,不过GetRow方法返回的是IRow,所以只能用IRow定义了,ICell的情况也是一样的。

    1 IRow unionRow = unionSheet.GetRow(0);
    2 ICell unionCell = unionRow.GetCell(2);
    3 unionCell.SetCellValue("第一个值");//设值

    下面的函数,用于合并单元格的。

    1 //CellRangeAddress四个参数为:起始行,结束行,起始列,结束列
    2 unionSheet.AddMergedRegion(new CellRangeAddress(0, 0, 2, 6));

    以上就是基本的操作,在下一节,我会针对我所遇到的问题,写出我的解决方案来的。

  • 相关阅读:
    Mysql多个字段同时满足多组条件
    spring-boot 配置Druid监控
    回顾存储过程简单使用
    win10环境下使用docker部署spring-boot项目
    LeetCode 35. 搜索插入位置
    二分查找
    归并排序(二)
    归并排序
    剑指 Offer 68
    剑指 Offer 68
  • 原文地址:https://www.cnblogs.com/yiji-xing/p/6669918.html
Copyright © 2020-2023  润新知