web-dev-qa-db-ja.com

XSSFCellStyle setFillForegroundColorおよびsetFillBackgroundColorが機能しない

SetFillForegroundColorとsetFillBackgroundColorを使用してExcelファイルのセルの色を変更しようとしました。

しかし、私は失敗し、本当に何が問題なのかわかりませんでした。私は何時間もグーグルググしてきましたが、それでも色を設定する正しい方法が見つかりませんでした。

以下は私が書くコードです:

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

そして、これが最終結果です。

enter image description here

セルの色を青に設定するにはどうすればよいですか?

https://poi.Apache.org/download.html のpoi-bin-3.12-20150511.Zipを使用しています

12
Brian

前景色を設定した後、次の行を追加する必要がある場合があります。

style.setFillPattern(CellStyle.SOLID_FOREGROUND);
20
McNultyyy

SetFillPattern は、FillPatterTypeを想定しているため、次のようになります。

style.setFillPattern(FillPatternType.SOLID_FOREGROUND)
11
Gwidion