在项目中使用Npoi导出到Excel

本文介绍如何使用NPOI库将数据导出到Excel文件中。文章通过实例展示了如何创建Excel工作簿、设置表头及内容,并将员工数据写入指定的Excel文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

//调用Npoi实现导出Excel的功能
        private void btnExportToExcel_Click(object sender, RoutedEventArgs e)
        {
            SaveFileDialog sdfExport = new SaveFileDialog();
            sdfExport.Filter = "Excel文件|*.xls";//设定通用对话框的过滤关键词
            if (sdfExport.ShowDialog() != true)
            {
                return;
            }
            string filename = sdfExport.FileName;
            HSSFWorkbook workbook = new HSSFWorkbook();
            ISheet sheet = workbook.CreateSheet("员工数据");

            IRow rowHeader = sheet.CreateRow(0);//表头行,在表头下面创建三个头字段
            rowHeader.CreateCell(0, CellType.STRING).SetCellValue("姓名");
            rowHeader.CreateCell(1, CellType.STRING).SetCellValue("工号");
            rowHeader.CreateCell(2, CellType.STRING).SetCellValue("入职日期");

            //把查询结果导出到Excel
            Employee[] employees = (Employee[])datagrid.ItemsSource;//得到GridView的绑定数据源,数据源是一个员工类数组

            for (int i = 0; i < employees.Length; i++)//遍历员工类
            {
                Employee employee = employees[i]; //得到其中第i个员工对象

                IRow row = sheet.CreateRow(i + 1); //创建第i+1行
                row.CreateCell(0, CellType.STRING).SetCellValue(employee.Name);  //设置行数据
                row.CreateCell(1, CellType.STRING).SetCellValue(employee.Number);       //设置行数据

                ICellStyle styledate = workbook.CreateCellStyle();
                IDataFormat format = workbook.CreateDataFormat();

                //格式具体有哪些请看单元格右键中的格式,有说明,excel中的日期类型是使用数字来显示的

                styledate.DataFormat = format.GetFormat("yyyy\"年\"m\"月\"d\"日\"");

                ICell cellInDate = row.CreateCell(2, CellType.NUMERIC);
                cellInDate.CellStyle = styledate;
                cellInDate.SetCellValue(employee.InDate);
            }

            using (Stream stream = File.OpenWrite(filename))
            {
                workbook.Write(stream);
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值