POI Apache, la création de nouvelles cellules remplace le style de ligne
Je suis en utilisant Apache POI pour exporter les données vers un .fichier xlsx et je veux le style de certaines des lignes et des cellules contenues dans le fichier.
Je suis en utilisant XSSF depuis le fichier va être lu dans Excel 2007+.
En gros, mon problème est que je suis en train de définir un style de ligne comme dans l'exemple suivant, qui définit un noir comme couleur de premier plan pour l'ensemble de la ligne à l'indice 0. Il fonctionne très bien, mais à chaque fois que je crée une nouvelle cellule, la cellule nouvellement créé n'a pas de style, comme si des raisons impérieuses le style de ligne que j'ai précisé.
Voici un extrait de code pour démontrer ce que je fais:
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("mySheet");
XSSFRow row = sheet.createRow(0);
XSSFCellStyle myStyle = wb.createCellStyle();
myStyle.setFillForegroundColor(new XSSFColor(new Color(255, 255, 255)));
myStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
row.setRowStyle(myStyle); //This works, the whole row is now black
row.createCell(0); //This cell doesn't have a style, the rest of the line stays stylized
row.getCell(0).setCellValue("Test");
J'ai aussi essayé de ligne*.createCell(0, Cellule.CELL_TYPE_STRING);*, mais ça n'a rien changé.
Quelle est la bonne façon d'accomplir ce que je veux faire? Je voulais le faire de cette façon, donc je n'ai pas eu à régler chaque cellule est de style après la création de ce depuis toutes les cellules sur la même ligne ont le même style.
source d'informationauteur Adam Smith
Vous devez vous connecter pour publier un commentaire.
Définir le style en cellule nouvellement créé ainsi par exemple, ci-dessous:
Même vous créer une ligne avec le style, il n'aura pas d'effet de créer des cellules de son. Le fait de créer des cellules ont leur propre style de cellule.
Le
row style
n'a pas la priorité àcell style
automatiquement. Si vous souhaitez utiliser la ligne de style dans la cellule, vous devez régler à nouveau.Même si vous définissez
row style
à la fin, il n'aura pas d'effet à la cellule.Exemple
Je suis d'accord que "setRowStyle" ne fonctionne pas comme il devrait l'être.
J'ai créé ma propre fonction pour appliquer un style à une gamme ( peut-être une ligne ou plusieurs lignes )