Java 将样式应用于单元格范围-Apache POI

Java 将样式应用于单元格范围-Apache POI,java,excel,apache,styles,apache-poi,Java,Excel,Apache,Styles,Apache Poi,我正在寻找一种解决方案,将样式应用于一系列单元格,而不必在其上循环 在stackoverflow上到处尝试其他解决方案,但都不起作用。 例如,这不适用于我: CellRangeAddress region = CellRangeAddress.valueOf("A1:B2"); short borderStyle = CellStyle.BORDER_THIN; RegionUtil.setBorderBottom(borderStyle, region, activeSheet, excelW

我正在寻找一种解决方案,将样式应用于一系列单元格,而不必在其上循环

在stackoverflow上到处尝试其他解决方案,但都不起作用。 例如,这不适用于我:

CellRangeAddress region = CellRangeAddress.valueOf("A1:B2");
short borderStyle = CellStyle.BORDER_THIN;
RegionUtil.setBorderBottom(borderStyle, region, activeSheet, excelWorkbook);
RegionUtil.setBorderTop(borderStyle, region, activeSheet, excelWorkbook);
RegionUtil.setBorderLeft(borderStyle, region, activeSheet, excelWorkbook);
RegionUtil.setBorderRight(borderStyle, region, activeSheet, excelWorkbook);
它在选择的外部边缘上添加边框,而不是在内部的单元格上。 我想为范围内的每个单元格设置一个边框。即使没有循环,这也是可能的吗


谢谢

我认为如果不将样式单独应用于单个单元格,则无法将样式应用于范围单元格中的所有单元格

尝试在每个单元格上循环并应用所有边框

以下是一个可能对您有所帮助的示例:

CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setBorderLeft(CellStyle.BORDER_THIN);
cellStyle.setBorderRight(CellStyle.BORDER_THIN);
cellStyle.setBorderTop(CellStyle.BORDER_THIN);
cellStyle.setBorderBottom(CellStyle.BORDER_THIN);
for(int i=region.getFirstRow();i<region.getLastRow();i++){
    Row row = sheet.getRow(i);
    for(int j=region.getFirstColumn();j<region.getLastColumn();j++){
        Cell cell = row.getCell(j);
        cell.setCellStyle(cellStyle);
    }
}
CellStyle-CellStyle=workbook.createCellStyle();
cellStyle.Left(cellStyle.BORDER_THIN);
cellStyle.setBorderRight(cellStyle.BORDER_THIN);
cellStyle.SetboordTop(cellStyle.BORDER_THIN);
cellStyle.Bottom(cellStyle.BORDER_THIN);

对于(int i=region.getFirstRow();我感谢你,这就是我最终得到的结果。