Подтвердить что ты не робот

Добавление границ в ячейки в созданном POI файле Excel

Я использую POI для создания файла Excel. Мне нужно добавить границы к определенным ячейкам на листе.

Как я могу это сделать?

4b9b3361

Ответ 1

Настройка границ в стиле, используемом в ячейках, выполнит это. Пример:

style.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);

Ответ 2

HSSFCellStyle style=workbook.createCellStyle();
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);

Ответ 3

a Вспомогательная функция:

private void setRegionBorderWithMedium(CellRangeAddress region, Sheet sheet) {
        Workbook wb = sheet.getWorkbook();
        RegionUtil.setBorderBottom(CellStyle.BORDER_MEDIUM, region, sheet, wb);
        RegionUtil.setBorderLeft(CellStyle.BORDER_MEDIUM, region, sheet, wb);
        RegionUtil.setBorderRight(CellStyle.BORDER_MEDIUM, region, sheet, wb);
        RegionUtil.setBorderTop(CellStyle.BORDER_MEDIUM, region, sheet, wb);
    }

Если вы хотите добавить Border в Excel, то

String cellAddr="$A$11:$A$17";

setRegionBorderWithMedium(CellRangeAddress.valueOf(cellAddr1), sheet);

Ответ 4

В новых версиях apache poi:

XSSFCellStyle style = workbook.createCellStyle();
style.setBorderTop(BorderStyle.MEDIUM);
style.setBorderBottom(BorderStyle.MEDIUM);
style.setBorderLeft(BorderStyle.MEDIUM);
style.setBorderRight(BorderStyle.MEDIUM);

Ответ 5

XSSF

BorderStyle

Используйте XSSFCellStyle.BORDER_MEDIUM или XSSFBorderFormatting.BORDER_MEDIUM (оба перечисления ссылаются на одно и то же значение):

XSSFCellStyle cellStyle = workbook.createCellStyle();

cellStyle.setBorderTop(XSSFCellStyle.BORDER_MEDIUM);
cellStyle.setBorderRight(XSSFCellStyle.BORDER_MEDIUM);
cellStyle.setBorderBottom(XSSFCellStyle.BORDER_MEDIUM);
cellStyle.setBorderLeft(XSSFCellStyle.BORDER_MEDIUM);

Цвет границы

Используйте setBorderColor(XSSFCellBorder.BorderSide.BOTTOM, XSSFColor) или setBottomBorderColor(XSSFColor) (эквивалентно сверху, слева, справа):

XSSFCellStyle cellStyle = workbook.createCellStyle();
XSSFColor color = new XSSFColor(new java.awt.Color(128, 0, 128));

cellStyle.setTopBorderColor(color);
cellStyle.setRightBorderColor(color);
cellStyle.setBottomBorderColor(color);
cellStyle.setLeftBorderColor(color);

Ответ 6

Из версии 4.0.0 на RegionUtil -methods появилась новая подпись. Например:

RegionUtil.setBorderBottom(BorderStyle.DOUBLE,
            CellRangeAddress.valueOf("A1:B7"), sheet);

Ответ 7

Чтобы создать границу в POI Apache, вы должны...

1: создать стиль

final XSSFCellStyle style = workbook.createCellStyle();

2: Затем вам нужно создать границу

style.setBorderBottom( new XSSFColor(new Color(235,235,235));

3: Затем вы должны установить цвет этой границы

style.setBottomBorderColor( new XSSFColor(new Color(235,235,235));

4: Затем примените стиль к ячейке

cell.setCellStyle(style);