C#使用NPOI 导出Excel

本文介绍如何利用C#与NPOI库来实现Excel文件的创建与导出功能。首先创建Excel文件对象并添加sheet,然后设置表头及数据内容,并通过内存流完成文件写入。最后根据不同项目类型(如Webform或MVC),提供相应的文件下载方式。

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

C#使用NPOI 导出Excel

首先需要添加NPOI的引用

 //创建Excel文件的对象
            HSSFWorkbook book = new HSSFWorkbook();
            //添加一个sheet
            IRow row2 = sheet1.CreateRow(0);
            row2.CreateCell(0).SetCellValue("序号");
            row2.CreateCell(1).SetCellValue("作业许可单号");
            row2.CreateCell(2).SetCellValue("申请人");
            row2.CreateCell(3).SetCellValue("申请单位");
            row2.CreateCell(4).SetCellValue("作业日期(起)");
            row2.CreateCell(5).SetCellValue("作业日期(讫)");
            row2.CreateCell(6).SetCellValue("主承揽商");
            row2.CreateCell(7).SetCellValue("次承揽商");
            row2.CreateCell(8).SetCellValue("工作内容");
            row2.CreateCell(9).SetCellValue("工作人员");
            row2.CreateCell(10).SetCellValue("人数(仅供参考)");
            if (list != null && list.Count > 0)
            {
                for (var i = 0; i < list.Count; i++)
                {
                    IRow rowtemp2 = sheet1.CreateRow(i + 1);
                    //非表头
                    rowtemp2.CreateCell(0).SetCellValue(i + 1);//序号
                    rowtemp2.CreateCell(1).SetCellValue(list[i].ApplyNo);
                    rowtemp2.CreateCell(2).SetCellValue(list[i].ApplyInfo);
                    rowtemp2.CreateCell(3).SetCellValue(list[i].ApplyDept);
                    rowtemp2.CreateCell(4).SetCellValue(list[i].oper_from_dt.Substring(0, 10));
                    rowtemp2.CreateCell(5).SetCellValue(list[i].oper_to_dt.Substring(0, 10));
                    rowtemp2.CreateCell(6).SetCellValue(list[i].guard_name);
                    rowtemp2.CreateCell(7).SetCellValue(list[i].guard_send_name);
                    rowtemp2.CreateCell(8).SetCellValue(list[i].oper_content);
                    var guardWorker=list[i].GuardWorker.TrimStart(',').TrimEnd(',');
                    rowtemp2.CreateCell(9).SetCellValue(guardWorker);
                    rowtemp2.CreateCell(10).SetCellValue(Split(guardWorker).Length);
                }
            }
               MemoryStream ms = new MemoryStream();
            book.Write(ms);
            ms.Seek(0, SeekOrigin.Begin);
          
           
  1. 当为Webform项目时
  //输出Excel
            string filename = "紧急入场统计" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
            Response.Clear();
            Response.ContentType = "application/vnd.ms-excel";
            Response.AddHeader("Content-Length", ms.Length.ToString());
            Response.AddHeader("Content-Disposition", string.Format("attachment;filename={0}", Server.UrlEncode(filename)));
            Response.BinaryWrite(ms.GetBuffer());
            Response.Flush();
            Response.End();
  1. 当为MVC项目时

            MemoryStream ms = new MemoryStream();
            book.Write(ms);
            ms.Seek(0, SeekOrigin.Begin);
            return File(ms, "application/vnd.ms-excel", survey.Name + DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".xls");
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值