参考 https://blog.csdn.net/s_istvan/article/details/69266915
参考 https://blog.csdn.net/spp_1987/article/details/13769043
参考 http://cn.voidcc.com/question/p-bqjtnoyz-vd.html
使用 hutool 工具包
/**
* 导出excel
*/
public static void downloadExcel(List<Map<String, Object>> list, HttpServletResponse response) throws IOException {
String tempPath =System.getProperty("java.io.tmpdir") + IdUtil.fastSimpleUUID() + ".xlsx";
File file = new File(tempPath);
BigExcelWriter writer= ExcelUtil.getBigWriter(file);
// 一次性写出内容,使用默认样式,强制输出标题
writer.write(list, true);
Workbook workbook = writer.getWorkbook();
//行加红
CellStyle style = workbook.createCellStyle();
style.setFillForegroundColor(IndexedColors.RED.getIndex());//这个参数必须设置
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);//这个参数必须设置
//设置边框
style.setBorderLeft(BorderStyle.THIN);//左边框
style.setBorderRight(BorderStyle.THIN);//右边框
Sheet sheet = writer.getSheet();
Iterator<Row> rowIterator = sheet.rowIterator();
while (rowIterator.hasNext()){
Row next = rowIterator.next();
Iterator<Cell> iterator = next.iterator();
while (iterator.hasNext()){
Cell next1 = iterator.next();
next1.setCellStyle(style);
}
}
//response为HttpServletResponse对象
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
response.setHeader("Content-Disposition","attachment;filename=file.xlsx");
ServletOutputStream out=response.getOutputStream();
// 终止后删除临时文件
file.deleteOnExit();
writer.flush(out, true);
//此处记得关闭输出Servlet流
IoUtil.close(out);
}