package com.dy.pmsGlobal.util; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.converters.Converter; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import java.net.URLEncoder; import java.util.List; /** * @Author: liurunyu * @Date: 2025/5/21 13:50 * @Description */ @Slf4j public class ExportExcelUtil { public static void downloadExcel(HttpServletResponse response, String fileName, String sheetName, List list){ if(CollectionUtils.isEmpty(list)){ return; } try{ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setCharacterEncoding("utf-8"); fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20"); response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); EasyExcel.write(response.getOutputStream(), list.get(0).getClass()).sheet(sheetName).doWrite(list); }catch (Exception e){ log.error("导出{}异常", sheetName, e); } } public static void downloadExcelSheets(HttpServletResponse response, String fileName, String sheetName, List list){ if(CollectionUtils.isEmpty(list)){ return; } /*try(ExcelWriter excelWriter = EasyExcel.write(file).build()) { WriteSheet writeSheet; for (SheetInfoBean bean : sheetInfoList) { // 构建sheet对象 writeSheet = EasyExcel.writerSheet(bean.getSheetName()).head(bean.getHeadClass()).build(); // 写出sheet数据 excelWriter.write(bean.getDataList(), writeSheet); } // 关流 excelWriter.finish(); } catch (Exception e) { // do something you want }*/ try{ response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setCharacterEncoding("utf-8"); fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20"); response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); EasyExcel.write(response.getOutputStream(), list.get(0).getClass()).sheet(sheetName).doWrite(list); }catch (Exception e){ log.error("导出{}异常",sheetName,e); } } }