导入
导出
pom依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.0.1</version>
</dependency>
文件名编码
public static String encodeFileName(String fileNames, HttpServletRequest request) {
String codedFilename = null;
try {
String agent = request.getHeader("USER-AGENT");
if (null != agent && -1 != agent.indexOf("MSIE") || null != agent && -1 != agent.indexOf("Trident") ||
null != agent && -1 != agent.indexOf("Edge")) {
String name = URLEncoder.encode(fileNames, "UTF-8");
codedFilename = name;
} else if (null != agent && -1 != agent.indexOf("Mozilla")) {
codedFilename = new String(fileNames.getBytes("UTF-8"), "iso-8859-1");
}
} catch (Exception e) {
e.printStackTrace();
}
return codedFilename;
}
@ApiOperation("导出")
@GetMapping(value = "/exportTemplate")
public void exportTemplate(HttpServletRequest request, HttpServletResponse response,
@RequestParam Long id) throws IOException {
Map<String, List<List<String>>> data = service.queryFromDataBase(id);
String fileName = "test";
String sheetName = fileName;
fileName = StringUtil.encodeFileName(fileName, request);
response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xlsx");
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
List<List<String>> header = new ArrayList<>();
List<List<String>> content = new ArrayList<>();
if (data.get("header") != null && data.get("content") != null)
{
header = data.get("header");
content = data.get("content");
}
try {
EasyExcel.write(response.getOutputStream()).head(header).registerWriteHandler(new CustomHandler())
.sheet(sheetName).doWrite(content);
} finally {
response.getOutputStream().close();
}
}