编辑
2023-10-19
遇到的问题
00
请注意,本文编写于 532 天前,最后修改于 532 天前,其中某些信息可能已经过时。

目录

前提
代码

前提

编写导出工具类中的通用导出方法时,用easyPoi导出的excel打开会出现一条绿线,一开始以为是默认style类导致的问题,后来发现是默认会窗口冻结第一行,在excel的视图里可以取消窗口冻结,但是我们要在导出的时候就去除掉

代码

获取sheet对象,编辑createFreezePane方法,去除窗口冻结也可以加上

java
/** * 这个是通用的easyPoi有对象导出方式 * @param response HttpServletResponse * @param type 导出excel后缀类型 * @param fileName 导出文件名 * @param clazz 列表中的类型对象 * @param list 导出列表 * @throws Exception */ public static <T> void easyPoiObjectToExcel(HttpServletResponse response, String type, Class<T> clazz, String fileName, List<T> list) throws IOException { if (type.equals("csv")) { response.setContentType("text/csv"); } else if (type.equals("dbf")) { response.setContentType("application/x-dbf"); } else if (type.equals("xls")) { response.setContentType("application/vnd.ms-excel"); } else { //默认xlsx type = "xlsx"; response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); } response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName + "." + type, "utf-8")); response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); try { ExportParams exportParams = new ExportParams(fileName, "Sheel1"); exportParams.setStyle(ExcelStylesUtil.class); // 生成workbook 并导出 Workbook workbook = ExcelExportUtil.exportExcel(exportParams, clazz, list); //获取sheet对象 Sheet sheet = workbook.getSheetAt(0); //去除窗口冻结 sheet.createFreezePane(0,0); workbook.write(response.getOutputStream()); workbook.close(); } catch (IOException e) { e.printStackTrace(); outputErrorJson(response, e.getMessage()); } }

本文作者:Weee

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!