2013-06-21 7 views
25

Ich habe dieses Forum immer wieder gescannt und alle hier genannten Methoden ausprobiert und kann immer noch nicht Apache POI ändern, um die Hintergrundfarbe meines Excel-Dokuments zu füllen.Kann Füllfarbe nicht einstellen Apache POI Excel-Arbeitsmappe

Hier ist mein Code:

errorOccured = true; 
XSSFCellStyle cs = workbook.createCellStyle(); 
cs.setFillBackgroundColor(IndexedColors.RED.getIndex()); 
row.getCell(0).setCellStyle(cs); 

Sie wissen, warum dies nicht funktionieren würde? Was ist der richtige Weg, um row.getCell(0) mit rot (Hintergrundfarbe) zu füllen?

Vielen Dank!

Antwort

51

Verwenden Sie die Hintergrundfarbe anstelle der Hintergrundfarbe.

errorOccured = true; 
XSSFCellStyle style = workbook.createCellStyle(); 
style.setFillForegroundColor(IndexedColors.RED.getIndex()); 
style.setFillPattern(FillPatternType.SOLID_FOREGROUND); 
row.getCell(0).setCellStyle(style); 

Dies wird die Zelle Hintergrundfarbe mit ROT füllen.

+0

Vielen Dank für Ihre Antwort, aber das funktioniert immer noch nicht für mich. Keine Ahnung warum. Ich bin im Debug-Modus und ich bestätige, dass der Code ausgeführt wird, aber keine Farbe in der .xlsx-Arbeitsmappe ändert. Irgendwelche Ideen? Hat es etwas damit zu tun, dass die Zellen, die ich versuche, rot zu werden, bereits mit gelber Füllung gefüllt sind? –

+1

Richie: Um die Änderungen in der Excel-Tabelle zu sehen, müssen Sie den Schreibbefehl dafür ausführen. Bitte bestätigen Sie den workbook.write (fileoutputstream) -Befehl, der ausgeführt wurde, bevor Sie das im Debug-Modus gesehen haben? – Sankumarsingh

+0

Ich polligize für die verzögerte Antwort. Das war das Problem! Ich habe nicht bemerkt, dass du die Datei umgeschrieben hast! Vielen Dank, Rich. –