You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Apache POI合并Excel单元格报错:无法添加重复合并区域G5:G6

解决方法

1. 检查原始Excel文件状态

错误提示明确说明G5:G6已经是合并区域。先打开你的原始Excel文件,确认G5和G6是否已被合并。如果已经合并,无需在代码中重复执行合并操作。

2. 避免重复添加合并区域

如果需要通过代码确保该区域合并,需解决重复执行的问题:

  • 将sheets.addMergedRegion(new CellRangeAddress(4,5,6,6))移出行循环(for (int rowNum = 4; ...)),放到Sheet处理的外层,每个Sheet仅执行一次。
  • 添加前先校验区域是否已存在,防止重复添加:
// 定义目标合并区域
CellRangeAddress targetRegion = new CellRangeAddress(4, 5, 6, 6);
boolean regionExists = false;

// 遍历现有合并区域,检查是否重复
for (int i = 0; i < sheets.getNumMergedRegions(); i++) {
    CellRangeAddress existingRegion = sheets.getMergedRegion(i);
    if (existingRegion.equals(targetRegion)) {
        regionExists = true;
        break;
    }
}

// 仅当区域不存在时执行添加
if (!regionExists) {
    sheets.addMergedRegion(targetRegion);
}

3. 排查代码中其他合并操作

检查代码的其他部分,确认是否有其他地方调用addMergedRegion处理G5:G6区域,导致重复添加。

修正后的代码示例

调整合并操作的位置,避免循环重复执行:

for (String cellLLL : sheetNumd) {
    XSSFSheet sheets = workbook.getSheet(cellLLL);
    
    if (sheets != null) {
        // 合并区域处理:放在行循环外,每个Sheet仅执行一次
        CellRangeAddress targetRegion = new CellRangeAddress(4, 5, 6, 6);
        boolean regionExists = false;
        for (int i = 0; i < sheets.getNumMergedRegions(); i++) {
            if (sheets.getMergedRegion(i).equals(targetRegion)) {
                regionExists = true;
                break;
            }
        }
        if (!regionExists) {
            sheets.addMergedRegion(targetRegion);
        }

        // 行遍历逻辑
        for (int rowNum = 4; rowNum < sheets.getLastRowNum() + 1; rowNum++) {
            Row row = sheets.getRow(rowNum);
            if (row != null) {
                for (Cell cell : row) {
                    int columnIndex = cell.getColumnIndex();
                    switch (columnIndex) {
                        case 6:
                            cellValue6 = cell.getStringCellValue();
                            break;
                    }
                }
            }
            if (cellLLL.equals("Sheet1")) {
                list6.add(cellValue6);
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者Alexander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 18:15:39