J'ai essayé d'utiliser setFillForegroundColor et setFillBackgroundColor pour changer la couleur de cellule d'un fichier Excel.
Cependant, j'ai échoué et je ne savais vraiment pas quel était le problème. J'ai googlé pendant de nombreuses heures et je n'ai toujours pas trouvé la bonne façon de définir la couleur.
Voici le code que j'écris:
import Java.awt.Color;
import Java.io.File;
import Java.io.FileOutputStream;
import org.Apache.poi.xssf.usermodel.XSSFCell;
import org.Apache.poi.xssf.usermodel.XSSFCellStyle;
import org.Apache.poi.xssf.usermodel.XSSFColor;
import org.Apache.poi.xssf.usermodel.XSSFRow;
import org.Apache.poi.xssf.usermodel.XSSFSheet;
import org.Apache.poi.xssf.usermodel.XSSFWorkbook;
public class TestColor {
public static void main(String[] args) {
File f = new File("test.xlsx");
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet();
XSSFRow row = sheet.createRow(0);
XSSFCell cell = row.createCell(0);
cell.setCellValue("no blue");
// set the color of the cell
XSSFCellStyle style = wb.createCellStyle();
XSSFColor myColor = new XSSFColor(Color.BLUE);
style.setFillForegroundColor(myColor);
style.setFillBackgroundColor(myColor);
cell.setCellStyle(style); // this command seems to fail
try {
FileOutputStream fos = new FileOutputStream(f);
wb.write(fos);
wb.close();
fos.flush();
fos.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
Et c'est le résultat final.
Comment définir la couleur de la cellule sur bleu?
J'utilise poi-bin-3.12-20150511.Zip de https://poi.Apache.org/download.html
Vous devrez peut-être ajouter la ligne suivante après avoir défini la couleur de premier plan:
style.setFillPattern(CellStyle.SOLID_FOREGROUND);
SetFillPattern attend FillPatterType, donc plutôt ceci:
style.setFillPattern(FillPatternType.SOLID_FOREGROUND)