SQL数据导出到Excel

在MVC中将SQL数据导出到Excel中的操作如下

  1. 首先用一个button按钮来进行操作 ,给它绑定一个点击事件的方法 ,点击后请求具体的导出数据的方法(public ActionResult ExportToExcel)
    在这里插入图片描述
  2. 现在开始在方法内将SQL数据导出到Excel中
  3. 第一步将需要导出的数据用LinQ语句查询出来 ,查询出学生表的数据并且是list数据类型
    SQL数据导出到Excel_第1张图片
  4. 接下来开始在方法内创建一个Excel工作簿来接收将要导出的数据
    在这里插入图片描述
  5. 创建完Excel工作簿后 ,开始创建Excel工作簿里面的工作表 ,这里呢先引用一下NPOI来建立工作表 ,并且给工作表命名为学生信息
    在这里插入图片描述
    在这里插入图片描述
  6. 创建完Excel工作表后 ,工作表里面什么都没有 ,按照一般使用Excel的流程 ,创建完表后就是开是创建行来接收数据 ,这里呢就先创建表头行 ,并且自定义表头行的数据
    在这里插入图片描述
  7. 接下来在表头行添加学生的基本信息字段(学号 ,姓名 ,身份证号 ,性别 ,学院 ,专业 ,年级 ,班级 ,账号),代码的意思就是在创建出来的表头行里面找到下标为0的格子来设置它要显示的字符串
    SQL数据导出到Excel_第2张图片
  8. 因为不知道每次要导出的数据是多少条 ,所以这里我用for循环来循环学生表内的所有数据 ,在for循环内,创建除表头行的所有行 ,并且在循环出来的行内添加学生表内的数据(Student[i].数据库字段名)
    在这里插入图片描述
    在这里插入图片描述
  9. 现在开始为导出的Excel文件命名
    string fileName = “考生信息” + DateTime.Now.ToString(“yyyy-MM-dd–HH-mm-ss-ffff”) + “.xls”
  10. 实例化MemoryStream
    MemoryStream ExcelStream = new MemoryStream();
  11. 因为SQL导出的数据不能直接放入到Excel中 ,所以先将Excel文件转化为内存流来存放SQL导出的数据
    excelWorkbook.Write(ExcelStream);
  12. 输出之前调用Seek(偏移量,游标位置) 移动文件读取指针到指定的位置 ,Seek(0,Seek。begin) 第一个参数表示相对位置,第二个参数表示参照位置
    ExcelStream.Seek(0, SeekOrigin.Begin);
  13. 最后return返回文件类型 ,MIME文件类型(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型
    return File(ExcelStream, “application/vnd.ms-excel”, fileName);
  14. MVC中简单的SQL数据导出到Excel的方法就是这种

你可能感兴趣的:(ASP.NET.MVC)