import com.alibaba.excel.write.handler.SheetWriteHandler; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.util.CellRangeAddress; import java.util.ArrayList; import java.util.List; /** * 根据单元格区域合并单元格 **/ public class MergeCellRangeWriteHandler implements SheetWriteHandler { private final List rangeCellList; public MergeCellRangeWriteHandler(List rangeCellList) { this.rangeCellList = (rangeCellList == null) ? new ArrayList<>() : rangeCellList; } @Override public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) { } @Override public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) { Sheet sheet = writeSheetHolder.getSheet(); for (CellRangeAddress cellRangeAddress : rangeCellList) { sheet.addMergedRegionUnsafe(cellRangeAddress); } } }