EasyPOI 是一款开源的基于
Java
语言的Excel操作工具
。
1.导入Excel
/**
* 导入Excel
*/
public List<User> importExcel(MultipartFile file) throws Exception {
// 导入
ImportParams params = new ImportParams();
params.setTitleRows(1);
params.setHeadRows(1);
return ExcelImportUtil.importExcel(file.getInputStream(), User.class, params);
}
导入文件:
导入结果:
2.简单导出Excel
/**
* 注解导出
*/
public void exportExcel(HttpServletResponse response) throws IOException {
// 导出
response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("用户-导出.xls", "utf-8"));
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("用户数据", "sheet1"), User.class, list);
workbook.write(response.getOutputStream());
}
导出结果:
3.模板导出Excel
/**
* 模板导出
*/
public void exportByTemplate(HttpServletResponse response) throws IOException {
// 模板导出
String templatePath = "/excel/export-template.xlsx";
InputStream templateInputStream = this.getClass().getResourceAsStream(templatePath);
// HSSFWorkbook 扩展名xls XSSFWorkbook 扩展名xlsx
Workbook templateWorkbook = new XSSFWorkbook(templateInputStream);
TemplateExportParams params = new TemplateExportParams("用户数据", 1);
params.setTemplateWb(templateWorkbook);
Map<String, Object> map = new HashMap<>();
map.put("list", list);
response.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE);
response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("用户-模板导出.xls", "utf-8"));
Workbook workbook = ExcelExportUtil.exportExcel(params, map);
workbook.write(response.getOutputStream());
}
文件位置:
模板文件:
导出结果:
源码地址
https://github.com/ACGkaka/SpringBootExamples/tree/main/springboot-easypoi