code

Apache POI를 사용하여 Excel에서 셀 병합

codestyles 2020. 12. 27. 10:53
반응형

Apache POI를 사용하여 Excel에서 셀 병합


Apache POI 라이브러리를 사용하여 Excel에서 셀을 병합하는 다른 방법이 있습니까?

다음을 사용하려고했지만 작동하지 않습니다.

// selecting the region in Worksheet for merging data
CellRangeAddress region = CellRangeAddress.valueOf("A" + rowNo + ":D"
            + rowNo);

// merging the region
sheet1.addMergedRegion(region);

당신이 사용할 수있는 sheet.addMergedRegion(rowFrom,rowTo,colFrom,colTo);

예제 sheet.addMergedRegion(new CellRangeAddress(1,1,1,4));는 B2에서 E2로 병합됩니다. 0 기반 인덱싱 (예 : POI 버전 3.12)임을 기억하십시오.

자세한 내용은 BusyDeveloper 가이드를 참조 하세요.


최고의 답변

sheet.addMergedRegion(new CellRangeAddress(start-col,end-col,start-cell,end-cell));

당신이 사용할 수있는 :

sheet.addMergedRegion(new CellRangeAddress(startRowIndx, endRowIndx, startColIndx,endColIndx));

CellRangeAddress가 다른 병합 영역과 일치하지 않는지 확인하면 예외가 발생합니다.

  • 셀을 서로 병합하려면 열 인덱스를 동일하게 유지하십시오.
  • 단일 행에있는 셀을 병합하려면 행 인덱스를 동일하게 유지하십시오.
  • 인덱스는 0부터 시작합니다.

이 작업을 수행하려는 작업은 다음과 같습니다.

sheet.addMergedRegion(new CellRangeAddress(rowNo, rowNo, 0, 3));

셀을 병합하고 테두리를 두는 방법을 만들었습니다.

protected void setMerge(Sheet sheet, int numRow, int untilRow, int numCol, int untilCol, boolean border) {
    CellRangeAddress cellMerge = new CellRangeAddress(numRow, untilRow, numCol, untilCol);
    sheet.addMergedRegion(cellMerge);
    if (border) {
        setBordersToMergedCells(sheet, cellMerge);
    }

}



protected void setBordersToMergedCells(Sheet sheet, CellRangeAddress rangeAddress) {
    RegionUtil.setBorderTop(BorderStyle.MEDIUM, rangeAddress, sheet);
    RegionUtil.setBorderLeft(BorderStyle.MEDIUM, rangeAddress, sheet);
    RegionUtil.setBorderRight(BorderStyle.MEDIUM, rangeAddress, sheet);
    RegionUtil.setBorderBottom(BorderStyle.MEDIUM, rangeAddress, sheet);
}

참조 URL : https://stackoverflow.com/questions/18716032/merging-cells-in-excel-using-apache-poi

반응형