J'utilise POI pour créer une feuille de calcul Excel en Java. Je le code suivant utilisé pour la création d'une ligne d'en-tête:La définition de la couleur de premier plan pour HSSFCellStyle sort toujours en noir
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("Report");
// some more code
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(cellNumber);
HSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index);
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
HSSFFont font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font.setColor(HSSFColor.WHITE.index);
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);
La question que j'ai est que le réglage de la couleur de fond de remplissage sur la cellule est toujours noir, peu importe de quelle couleur je prends. Qu'est-ce que je fais mal? Si je n'utilise pas la ligne "setFillPattern", aucune couleur n'apparaît du tout.
Ah, je comprends. J'ai besoin de changer la couleur de premier plan pour changer la couleur de fond - génie! – Pakman
Sauvé de nombreuses heures de désespoir, quelqu'un sait pourquoi cela fonctionne de cette façon? – CGK
Je pense que la cellule est peinte avec un motif composé de pixels de premier plan et d'arrière-plan. Si vous utilisez SOLID_FOREGROUND, seul le pixel de premier plan est visible. Cette couleur est différente de la couleur utilisée pour le rendu du texte, qui est définie avec la police. – Axel