package com.ruoyi.common.utils.excel;
|
|
import com.alibaba.excel.metadata.Head;
|
import com.alibaba.excel.write.merge.AbstractMergeStrategy;
|
import org.apache.poi.ss.usermodel.Cell;
|
import org.apache.poi.ss.usermodel.Sheet;
|
import org.apache.poi.ss.util.CellRangeAddress;
|
|
import java.util.List;
|
|
public class ConfigurableMergeStrategy extends AbstractMergeStrategy {
|
private final List<CellRangeAddress> mergeRegions;
|
|
public ConfigurableMergeStrategy(List<CellRangeAddress> mergeRegions) {
|
this.mergeRegions = mergeRegions;
|
}
|
|
@Override
|
protected void merge(Sheet sheet, Cell cell, Head head, Integer relativeRowIndex) {
|
// 检查当前单元格是否在任何一个合并区域内
|
for (CellRangeAddress region : mergeRegions) {
|
if (cell.getRowIndex() == region.getFirstRow() &&
|
cell.getColumnIndex() == region.getFirstColumn()) {
|
sheet.addMergedRegion(region); // 执行合并
|
break;
|
}
|
}
|
}
|
}
|