一、效果
二、代码
/**
* 数据导出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(); }