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