导出表格数据到Excel

首先,先在我们的项目资源管理器中找到引用,将NPIO插件引用到项目中
如下
在这里插入图片描述
再使用插件方法HSSFWorkbook创建工作簿

    //将查询出来的数据转化为对象列表的格式
    List<Student> listExaminee = listStu.ToList();
    //HSSFWorkbook方法创建工作簿Excel
    HSSFWorkbook excelBook = new HSSFWorkbook();
    //创建工作表并命名
    NPOI.SS.UserModel.ISheet sheet1 = excelBook.CreateSheet("考生信息");

工作簿创建好之后,我们就来书写工作表的表头行

    NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0);
    //创建9列并赋值
    row1.CreateCell(0).SetCellValue("学号");
    row1.CreateCell(1).SetCellValue("姓名");
    row1.CreateCell(2).SetCellValue("身份证号");
    row1.CreateCell(3).SetCellValue("性别");
    row1.CreateCell(4).SetCellValue("学院");
    row1.CreateCell(5).SetCellValue("专业");
    row1.CreateCell(6).SetCellValue("年级");
    row1.CreateCell(7).SetCellValue("班级");
    row1.CreateCell(8).SetCellValue("账号");

创建好表头行之后,再来创建数据行

for (int i = 0; i < listStu.Count(); i++)
            {
                //创建行
                NPOI.SS.UserModel.IRow rowTemp = sheet1.CreateRow(i + 1);
                rowTemp.CreateCell(0).SetCellValue(listExaminee[i].StudentNumber);
                rowTemp.CreateCell(1).SetCellValue(listExaminee[i].StudentName);
                rowTemp.CreateCell(2).SetCellValue(listExaminee[i].StudentIDNum);
                rowTemp.CreateCell(3).SetCellValue(listExaminee[i].StudentSex);
                rowTemp.CreateCell(4).SetCellValue(listExaminee[i].AcademeName);
                rowTemp.CreateCell(5).SetCellValue(listExaminee[i].SpecialtyName);
                rowTemp.CreateCell(6).SetCellValue(listExaminee[i].GradeName);
                rowTemp.CreateCell(7).SetCellValue(listExaminee[i].ClassName);
                rowTemp.CreateCell(8).SetCellValue(listExaminee[i].UserNuber);
            }

最后一步,使用IO流写出数据。

    var fileName = "考生信息" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ffff") + ".xls";

    //将Excel表格转化为流,输出
    //创建文件流
    System.IO.MemoryStream bookStream = new MemoryStream();
    //文件写入流(向流中写入字节序列)
    excelBook.Write(bookStream);
    //输出之前调用Seek(偏移量,游标位置) 把0位置指定为开始位置
    bookStream.Seek(0, SeekOrigin.Begin);
    return File(bookStream, "application/vnd.ms-excel", fileName);

}

到这里,将表格数据导出到Excel工作表的方法就大功告成了,剩下的就是结合JS的使用来完成一键导出了。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44541076/article/details/90293709