引入版本
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.22</version>
</dependency>
使用
public void export(List list,HttpServletResponse response){
ExcelWriter writer = ExcelUtil.getBigWriter();
writer.addHeaderAlias("name", "姓名");
writer.addHeaderAlias("age", "年龄");
writer.addHeaderAlias("hobby", "爱好");
StyleSet style = writer.getStyleSet();
CellStyle headCellStyle = style.getHeadCellStyle();
headCellStyle.setWrapText(true);
headCellStyle.setAlignment(HorizontalAlignment.CENTER);
headCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
Font headFont = writer.createFont();
headFont.setFontName("宋体");
headFont.setFontHeightInPoints((short) 15);
headCellStyle.setFont(headFont);
CellStyle cellStyle = style.getCellStyle();
cellStyle.setAlignment(HorizontalAlignment.LEFT);
Font font = writer.createFont();
font.setFontName("宋体");
cellStyle.setFont(font);
writer.setOnlyAlias(true);
writer.setFreezePane(1);
writer.write(list);
writer.autoSizeColumnAll();
String rangeString = CellReference.convertNumToColString(3) + "1";
CellRangeAddress filterRange = CellRangeAddress.valueOf("A1:" + rangeString);
writer.getSheet().setAutoFilter(filterRange);
response.setCharacterEncoding(CharsetUtil.UTF_8);
response.setHeader("Content-Disposition","attachment;filename=test.xlsx");
response.setContentType("application/vnd.ms-excel;" + CharsetUtil.UTF_8);
try (ServletOutputStream outputStream = response.getOutputStream()) {
writer.flush(outputStream);
writer.close();
} catch (Exception e) {
log.warn("批量导出出错:{}", e.getMessage());
}
}
效果图