web-dev-qa-db-fra.com

Ajouter des bordures aux cellules dans un fichier Excel généré par POI

J'utilise POI pour générer un fichier Excel. J'ai besoin d'ajouter des bordures à des cellules spécifiques dans la feuille de calcul.

Comment puis-je accomplir cela?

35
jzd

La mise en place de bordures dans le style utilisé dans les cellules accomplira cela. Exemple:

style.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);
54
jzd
HSSFCellStyle style=workbook.createCellStyle();
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
23
swamy

Dans les nouvelles versions d'Apache poi:

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

une fonction d'assistance:

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);
    }

Lorsque vous souhaitez ajouter une bordure dans Excel, puis

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

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

10
Maxwell Cheng

XSSF

Style de bordure

Utilisez XSSFCellStyle.BORDER_MEDIUM Ou XSSFBorderFormatting.BORDER_MEDIUM (Les deux énumérations font référence à la même valeur):

XSSFCellStyle cellStyle = workbook.createCellStyle();

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

cell.setCellStyle(cellStyle);

Couleur de la bordure

Utilisez setBorderColor(XSSFCellBorder.BorderSide.BOTTOM, XSSFColor) ou setBottomBorderColor(XSSFColor) (équivalent en haut, à gauche, à droite):

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);

cell.setCellStyle(cellStyle);
7
winklerrr

Depuis la version 4.0.0 sur RegionUtil- les méthodes ont une nouvelle signature. Par exemple:

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

Pour créer une bordure dans Apache POI, vous devez ...

1: créer un style

final XSSFCellStyle style = workbook.createCellStyle();

2: Ensuite, vous devez créer la bordure

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

3: Ensuite, vous devez définir la couleur de cette bordure

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

4: Appliquez ensuite le style à une cellule

cell.setCellStyle(style);
0
rogger2016