EasyExcel自定义处理器扩展指定行修改样式包括字体颜色

EasyExcel自定义处理器扩展指定行修改样式包括字体颜色

实现

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.handler.RowWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.fill.FillConfig;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFColor;

import java.util.List;

public class CustomRowWriteHandler implements RowWriteHandler {

    private List<Integer> rowIndexToChange;

    public CustomRowWriteHandler(List<Integer> rowIndexToChange) {
        this.rowIndexToChange = rowIndexToChange;
    }

    @Override
    public void afterRowCreate(WriteSheetHolder writeSheetHolder, Row row, Integer relativeRowIndex, Boolean isHead) {
			//获取信息
			Sheet sheet = writeSheetHolder.getSheet();
            Workbook workbook = sheet.getWorkbook();
            
            //字体颜色
            Font font = workbook.createFont();
            font.setColor(IndexedColors.BLUE.getIndex());
            
            //设置样式
             CellStyle cellStyle = workbook.createCellStyle();
               cellStyle.setFont(font);
            
              for(Integer rowIndex : rowIndexToChange){
              //过滤表头
              Row fontRow = sheet.getRow(rowIndex + 1);
              if(fontRow != null){
              for (Cell cell : fontRow) {
                 cell.setCellStyle(cellStyle);
					}
				}
              }
        }
    }
}

// 导出时设置自定义写入处理器
public void exportExcel(List<YourDataClass> data, String fileName, int rowIndexToChange) {
    EasyExcel.write(fileName, YourDataClass.class)
            .sheet("Sheet1")
            .registerWriteHandler(new CustomRowWriteHandler(rowIndexToChange))
            .doWrite(data);
}

最近更新

  1. TCP协议是安全的吗?

    2024-06-18 15:22:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-18 15:22:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-18 15:22:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-18 15:22:05       20 阅读

热门阅读

  1. Python自动化(3)——鼠标模拟

    2024-06-18 15:22:05       7 阅读
  2. 迭代器和生成器的区别是什么

    2024-06-18 15:22:05       5 阅读
  3. 大数据智能化教学解决方案

    2024-06-18 15:22:05       4 阅读
  4. Mysql中常用的sql语句(适合萌新学习)

    2024-06-18 15:22:05       6 阅读