咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

EasyExcel 是阿里巴巴的一个基于Java的简单方便省内存的读写Excel开源项目。

常用方法,见官方文档:https://easyexcel.opensource.alibaba.com/docs/current/

下面介绍,Alibaba EasyExcel:通用批量设置 标题头样式(背景色,字体等)、内容表体样式(背景色、字体、边框等)版本 2.2.6+

当我们的标题头,与内容数据,的样式基本统一时,可以使用此方法方便的统一管理Excel样式。

com.alibaba.excel.write.style.HorizontalCellStyleStrategy

一、首先设置头样式:

WriteCellStyle headWriteCellStyle = new WriteCellStyle(); headWriteCellStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex());// 背景设置 WriteFont headWriteFont = new WriteFont(); headWriteFont.setFontHeightInPoints((short)16);// 字体大小 headWriteCellStyle.setWriteFont(headWriteFont);

二、接着设置 内容样式:

WriteCellStyle contentWriteCellStyle = new WriteCellStyle(); // 这里需要指定 FillPatternType 为 FillPatternType.SOLID_FOREGROUND,才会显示背景色 contentWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND); // 背景绿色 contentWriteCellStyle.setFillForegroundColor(IndexedColors.GREEN.getIndex()); WriteFont contentWriteFont = new WriteFont(); // 字体大小 contentWriteFont.setFontHeightInPoints((short)20); contentWriteCellStyle.setWriteFont(contentWriteFont); // 边框 contentWriteCellStyle.setBorderLeft(BorderStyle.THIN);//细实线 contentWriteCellStyle.setBorderTop(BorderStyle.THIN); contentWriteCellStyle.setBorderRight(BorderStyle.THIN); contentWriteCellStyle.setBorderBottom(BorderStyle.THIN);

三、通过 HorizontalCellStyleStrategy 合并 头与体样式:

HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);

四、通过 ExcelWriterBuilder 对象 registerWriteHandler 方法注册样式操作:

response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); String fileName = URLEncoder.encode("学生列表", "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); ExcelWriterBuilder excelWriterBuilder = EasyExcel.write(response.getOutputStream()); excelWriterBuilder.registerWriteHandler(horizontalCellStyleStrategy); ExcelWriter excelWriter = excelWriterBuilder.build();

五、创建 Sheet 构建Excel文件:

ExcelWriterSheetBuilder excelWriterSheetBuilder = EasyExcel.writerSheet(0, "学生列表"); WriteSheet writeSheet = excelWriterSheetBuilder.head(head).build();// head 是一个二维数组,来表示头 excelWriter.write(data, writeSheet);// data 为数据 excelWriter.finish();// 记录一定要finish