<!--easyexcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.6</version>
</dependency>
本文教程适合小白直接使用:先导出excel(含多个sheet),后导入,以上为导入依赖
导出excel(含多个sheet页,第一个sheet导出现有的数据,第二个sheet导出无数据)
HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
try {
//先设置了导出表头,详细在csdn查看如何设置导出表头
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
String fileName = URLEncoder.encode("AI机器人自动武器填充", "UTF-8").replaceAll("\\+", "%20");
response.setHeader("Content-Disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
Workbook workbook = EasyExcelUtil.getWorkbook(excelWriter);
//第一个表格
WriteSheet batchEditDepartment = EasyExcel.writerSheet(0, "AI全方位攻略顶实验室").head(BatchEditDeptInfo.class).build();
//第一个表格是有数据的,所以去数据库随便查一个表,查完后,为了便于用户使用要针对数据处理
List<BatchEditDeptInfo> vos = this.deptInfoMapper.queryAllDeptInfoByCompanyCode(companyCode);
Map<String, String> deptCodeAndDeptNameMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(vos)) {
for (BatchEditDeptInfo vo : vos) {
deptCodeAndDeptNameMap.put(vo.getDeptCode(),vo.getDeptName());
}
}
if (CollectionUtils.isNotEmpty(vos)) {
for (BatchEditDeptInfo vo : vos) {
//上级部门名称
if (StringUtils.isNotEmpty(vo.getParentCode())) {
if (!"0".equals(vo.getParentCode())) {

本文提供了一个使用阿里巴巴EasyExcel库导出和导入包含多个Sheet的Excel文件的教程。首先,展示了如何添加依赖并设置响应以导出带有数据的第一Sheet和无数据的第二Sheet。接着,详细说明了如何处理数据库数据、设置字体和样式,以及如何冻结表头。最后,介绍了使用监听器读取导入的多SheetExcel文件的方法。
1万+

被折叠的 条评论
为什么被折叠?



