RegionUtil zwrócił wszystkie kolory tła inne niż bieli do czerni w moim przypadku. To jest moje obejście tego problemu:
public final class BorderUtils {
public static void setBorder(Sheet sheet, BorderStyle borderStyle, CellRangeAddress region) {
setBorderTop(sheet, borderStyle, region);
setBorderBottom(sheet, borderStyle, region);
setBorderLeft(sheet, borderStyle, region);
setBorderRight(sheet, borderStyle, region);
}
public static void setBorderTop(Sheet sheet, BorderStyle borderStyle, CellRangeAddress region) {
Row row = sheet.getRow(region.getFirstRow());
for (int i=region.getFirstColumn() ; i<=region.getLastColumn() ; i++) {
Cell cell = row.getCell(i);
CellStyle cellStyle = cloneCellStyle(sheet, cell);
cellStyle.setBorderTop(borderStyle);
cell.setCellStyle(cellStyle);
}
}
public static void setBorderBottom(Sheet sheet, BorderStyle borderStyle, CellRangeAddress region) {
Row row = sheet.getRow(region.getLastRow());
for (int i=region.getFirstColumn() ; i<=region.getLastColumn() ; i++) {
Cell cell = row.getCell(i);
CellStyle cellStyle = cloneCellStyle(sheet, cell);
cellStyle.setBorderBottom(borderStyle);
cell.setCellStyle(cellStyle);
}
}
public static void setBorderLeft(Sheet sheet, BorderStyle borderStyle, CellRangeAddress region) {
for (int i=region.getFirstRow() ; i<=region.getLastRow() ; i++) {
Cell cell = sheet.getRow(i).getCell(region.getFirstColumn());
CellStyle cellStyle = cloneCellStyle(sheet, cell);
cellStyle.setBorderLeft(borderStyle);
cell.setCellStyle(cellStyle);
}
}
public static void setBorderRight(Sheet sheet, BorderStyle borderStyle, CellRangeAddress region) {
for (int i=region.getFirstRow() ; i<=region.getLastRow() ; i++) {
Cell cell = sheet.getRow(i).getCell(region.getLastColumn());
CellStyle cellStyle = cloneCellStyle(sheet, cell);
cellStyle.setBorderRight(borderStyle);
cell.setCellStyle(cellStyle);
}
}
}