zoukankan      html  css  js  c++  java
  • 转载:NPOI导出到Excel表格

    NPOI开发包下载:http://pan.baidu.com/share/link?shareid=4025220936&uk=2837994235

    需要命名空间
    using NPOI.HSSF.UserModel;
    using NPOI.SS.UserModel;
    先简单介绍下NPOI,Workbook工作簿,Sheet页,row行,cell:单元格;这些名字都是有用的,
    首先为什么要用的NPOI呢?这是因为,它效率比较高点,而且可以完全脱离Excel表格软件直接可以导出,方便吧,以前的(就不解释了)需要本地安装Excel表格软件,需要软件支持,版本不同还不行,所以,很受限制的,这个就不需要了,导入NPOI.dll程序集,就可以对想要的数据导出格式为.xls的了,不需要本地另外安装,方便多了,好了,不多说了,看例子:
            HSSFWorkbook hssfworkbook = new HSSFWorkbook();//实例化一个表格
                ISheet sheet1 = hssfworkbook.CreateSheet("俺的第一页");//创建Excel的一页
                IRow rowHeader = sheet1.CreateRow(0);//创建表头,就是Excel中的第一行
                rowHeader.CreateCell(0, CellType.STRING).SetCellValue("姓名");//Excel中的第一行
                rowHeader.CreateCell(1, CellType.STRING).SetCellValue("年龄");
                rowHeader.CreateCell(2, CellType.STRING).SetCellValue("性别");
                IRow row2 = sheet1.CreateRow(1);//从Excel第二行,就开始是真正的数据啦
                row2.CreateCell(3, CellType.STRING).SetCellValue("啦啦啦");//这是在Excel中的第1行第3列
                using (Stream stream = File.OpenWrite("d:/1.xls"))
                {
                    hssfworkbook.Write(stream);
                }
    来看看导出的是什么样子的?----image
    //这里面有点注意的是:日期格式的比较特殊,需要另加处理,
    //日期类型,日期类型比较特殊
                    //row.CreateCell(4, CellType.NUMERIC).SetCellValue(2013-10-10);//这样是不行的,好,继续,底下多弄几条数据好好感受下
                    ICellStyle styledate = hssfworkbook.CreateCellStyle();//指定格式
                    IDataFormat format = hssfworkbook.CreateDataFormat();
                    //格式具体有哪些请看单元格右键中的格式,有说明
                    styledate.DataFormat = format.GetFormat("yyyy"年"m"月"d"日"");
                    List<ICell> cellInDate = new List<ICell>();
                    cellInDate.Add(row.CreateCell(8, CellType.NUMERIC));//出生日期
                    cellInDate.Add(row.CreateCell(9, CellType.NUMERIC));//入职日期
                    cellInDate.Add(row.CreateCell(18, CellType.NUMERIC));//合同起始时间
                    cellInDate.Add(row.CreateCell(19, CellType.STRING));//合同结束时间
                    for (int j = 0; j < cellInDate.Count; j++)
                    {
                        cellInDate[j].CellStyle = styledate;
                        if (j == 0)
                        {
                            cellInDate[j].SetCellValue(employee.BirthDay);//出生日期,这些都是自己定义的,员工的出生日期
                        }
                        else if (j == 1)
                        {
                            cellInDate[j].SetCellValue(employee.InDate);//入职日期
                        }
                        else if (j == 2)
                        {
                            cellInDate[j].SetCellValue(employee.ContractStartDay);//合同起始时间
                        }
                        else if (j == 3)
                        {
                            cellInDate[j].SetCellValue(employee.ContractEndDay);//合同结束时间

                        }

  • 相关阅读:
    Git一些其它的功能
    怎么利用GitHub
    Git 操作标签的一些命令
    Git标签管理
    Git 多人协作开发
    Git 开发新的功能分支
    Git的Bug分支----临时保存现场git stash
    Git分支管理策略
    2017ICPC南宁 M题 The Maximum Unreachable Node Set【二分图】
    偏序集的最大反链【二分图】
  • 原文地址:https://www.cnblogs.com/joeylee/p/3526485.html
Copyright © 2011-2022 走看看