导出excel电子表格

一、效果
在这里插入图片描述
二、代码

/**
* 数据导出exel功能
*/

public RetKit exportXls() { 
  // 第一步:查询所有的数据
   List<Map<String, Object>> list = askForLeaveRepository.findAllStudent();
  
  // 第二步:使用POI将数据写到Excel文件中 // 在内存中创建一个Excel文件 
  HSSFWorkbook workbook = new  HSSFWorkbook();
  
  FileOutputStream out = null; 
  // 要输出的文件名字
  try { out = new FileOutputStream(System.getProperty("java.io.tmpdir") + "考勤数据.xls"); 	System.out.println(System.getProperty("java.io.tmpdir")); // 创建一个标签页
  HSSFSheet sheet = workbook.createSheet("考勤数据"); // 创建标题行 
  HSSFRow headRow =sheet.createRow(0); 
  headRow.createCell(0).setCellValue("班级名称");
  headRow.createCell(1).setCellValue("学生姓名");
  headRow.createCell(2).setCellValue("学生性别");
  headRow.createCell(3).setCellValue("请假日期");
  headRow.createCell(4).setCellValue("请假结束时间");
  headRow.createCell(5).setCellValue("请假类别");
  headRow.createCell(6).setCellValue("请假原因");
  
  // 遍历数据 
  for (int i = 0; i < list.size(); i++) {
  System.out.println(list.toString()); 
  HSSFRow dataRow =sheet.createRow(sheet.getLastRowNum() + 1);
  // 每行往下写最后一行加1 
  if (null != list.get(i).get("class_Name")) {
  dataRow.createCell(0).setCellValue(list.get(i).get("class_Name").toString());
  } if (null != list.get(i).get("student_Name")) {
  dataRow.createCell(1).setCellValue(list.get(i).get("student_Name").toString()
  ); } if (null != list.get(i).get("student_sex")) {
  dataRow.createCell(2).setCellValue(list.get(i).get("student_sex").toString())
  ; } if (null != list.get(i).get("start_time")) {
  dataRow.createCell(3).setCellValue(list.get(i).get("start_time").toString());
  } if (null != list.get(i).get("end_time")) {
  dataRow.createCell(4).setCellValue(list.get(i).get("end_time").toString()); }
  
  if (null != list.get(i).get("type")) {
  dataRow.createCell(5).setCellValue(list.get(i).get("type").toString()); } if
  (null != list.get(i).get("reason")) {
  dataRow.createCell(6).setCellValue(list.get(i).get("reason").toString()); } }
  
  // 第三步:使用输出流进行文件下载(一个流、两个头) // 使用输出流进行文件下载 // String filename=""; // 获取浏览器类型
  
  workbook.write(out); out.close(); } catch (IOException e) {
  e.printStackTrace(); }
  
  return RetKit.ok();
  
  }