工具类
package com.sxt.util;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.poi.excel.ExcelWriter;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;
/**
* excel工具类
*/
public class ExcelProcessorUtil {
/**
* 导出excel
* @param fileName
* @return
*/
public static void exportExcel(String fileName, ExcelWriter writer, Map<String,String> headerAlias, List dataList, HttpServletResponse response) {
writer.setOnlyAlias(true);
headerAlias.forEach((key, value) -> {
writer.addHeaderAlias(key, value);
});
writer.write(dataList,true);
// 设置样式
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition","attachment;filename="+ StrUtil.utf8Str(fileName)+".xls");
OutputStream out= null;
try {
out = response.getOutputStream();
writer.flush(out, true);
}
catch (IOException e) {
e.printStackTrace();
}
finally {
// 关闭writer,释放内存
writer.close();
}
//关闭输出Servlet流
IoUtil.close(out);
}
}
controller
@RestController
@RequestMapping("/xiugai")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "UserExcelDownloads", method = RequestMethod.GET)
public void downloadAllClassmate(HttpServletResponse response) throws IOException {
List<SysUser> userList = userService.getusername();
ExcelWriter writer = ExcelUtil.getWriter();
Map<String,String> map = MapUtil.newHashMap(true);
map.put("userName","名称");
ExcelProcessorUtil.exportExcel("test",writer,map,userList,response);
}
}