maven
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.14</version>
</dependency>
model
import java.math.BigDecimal;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TeacherExcelDto {
private Long id;
private String teacherName;
private String teacherClass;
private String address;
private String dateEntry;
private BigDecimal score;
private int gender;
private String genderName;
}
Controller
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.gemantic.cnooc.model.TeacherExcelDto;
import com.google.common.collect.Lists;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@RestController
@RequestMapping(path = "/teacher")
@Slf4j
public class TeachetExcelController {
private static final String FILE_HEADER_KEY = "Content-Disposition";
private static final String FILE_CONTENT_TYPE = "application/vnd.ms-excel;charset=utf-8";
@PostMapping(value = "exportExcel", headers = "Accept=application/octet-stream")
@ApiOperation(value = "导出excel", notes = "导出excel")
public void exportExcel(HttpServletResponse response) throws Exception {
List<TeacherExcelDto> pageList = Lists.newArrayList();
TeacherExcelDto a = new TeacherExcelDto();
a.setId(1l);
a.setTeacherName("王老师");
a.setTeacherClass("五年纪");
a.setAddress("北京小学教师楼");
a.setDateEntry(getDateToString(System.currentTimeMillis()));
a.setScore(new BigDecimal(88.98));
a.setGender(1);
pageList.add(a);
pageList.forEach(b -> {
if (a.getGender() == 1) {
a.setGenderName("男");
} else {
a.setGenderName("女");
}
});
ExcelWriter writer = ExcelUtil.getWriter();
writer.setOnlyAlias(true);
try (ServletOutputStream out = response.getOutputStream()) {
writer.addHeaderAlias("id", "序号");
writer.addHeaderAlias("teacherName", "姓名");
writer.addHeaderAlias("teacherClass", "班级");
writer.addHeaderAlias("genderName", "性别");
writer.addHeaderAlias("score", "综合评分");
writer.addHeaderAlias("address", "住址");
writer.addHeaderAlias("dateEntry", "入职日期");
response.setContentType(FILE_CONTENT_TYPE);
String fileName = URLEncoder.encode("教师信息", "UTF-8");
response.setHeader(FILE_HEADER_KEY, "attachment;filename=" + fileName + ".xls");
writer.write(pageList);
writer.flush(out, true);
} catch (Exception e) {
log.error("导出详情excel 出现错误", e);
}
}
public static String getDateToString(long time) {
Date d = new Date(time);
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sf.format(d);
}
}
导出效果
