package com.casic.missiles.handler; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.excel.metadata.Head; import com.alibaba.excel.write.handler.CellWriteHandler; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.write.metadata.holder.WriteTableHolder; import org.apache.poi.ss.usermodel.Row; import org.springframework.util.PropertyPlaceholderHelper; import java.util.List; import java.util.Properties; public class EasyExcelTitleHandler implements CellWriteHandler { private String title; private final PropertyPlaceholderHelper placeholderHelper = new PropertyPlaceholderHelper("${", "}"); public EasyExcelTitleHandler(String title) { this.title = title; } @Override public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Head head, Integer columnIndex, Integer relativeRowIndex, Boolean isHead) { // 动态设置表头字段 if (!ObjectUtil.isEmpty(head)) { List<String> headNameList = head.getHeadNameList(); if (CollUtil.isNotEmpty(headNameList)) { Properties properties = new Properties(); properties.setProperty("title", title); for (int i = 0 ; i < headNameList.size() ; i++){ // 循环遍历替换 headNameList.set(i, placeholderHelper.replacePlaceholders(headNameList.get(i), properties)); } } } } }