在Apache POI中设置自定义颜色

时间:2014-04-02 12:50:37

标签: java apache-poi poi-hssf

我试图更改HSSFWorkbook的自定义调色板,但它永远不会改变。自定义调色板始终保持其标准颜色。

这里我改变了HSSFWorkbook的自定义调色板的颜色:

private static void criaCores(HSSFWorkbook pastaDeTrabalho) {
    HSSFPalette paletaDeCores = pastaDeTrabalho.getCustomPalette();

    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.PLATAFORMA.getIndiceCorFundo(), (byte) 19, (byte) 20, (byte) 20);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.MES.getIndiceCorFundo(), (byte) 238, (byte) 238, (byte) 238);

    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.ANO_PAR.getIndiceCorFundo(), (byte) 199, (byte) 150, (byte) 24);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.ANO_IMPAR.getIndiceCorFundo(), (byte) 95, (byte) 95, (byte) 95);

    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.LINHA_TITULO_1.getIndiceCorFundo(), (byte) 16, (byte) 64, (byte) 120);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.LINHA_TITULO_2.getIndiceCorFundo(), (byte) 39, (byte) 74, (byte) 133);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.LINHA_TITULO_3.getIndiceCorFundo(), (byte) 64, (byte) 94, (byte) 147);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.LINHA_TITULO_4.getIndiceCorFundo(), (byte) 87, (byte) 114, (byte) 160);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.LINHA_TITULO_5.getIndiceCorFundo(), (byte) 112, (byte) 134, (byte) 174);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.LINHA_TITULO_6.getIndiceCorFundo(), (byte) 135, (byte) 154, (byte) 187);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.LINHA_TITULO_7.getIndiceCorFundo(), (byte) 159, (byte) 175, (byte) 201);

    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.LINHA_1.getIndiceCorFundo(), (byte) 50, (byte) 92, (byte) 162);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.LINHA_2.getIndiceCorFundo(), (byte) 68, (byte) 106, (byte) 171);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.LINHA_3.getIndiceCorFundo(), (byte) 88, (byte) 121, (byte) 179);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.LINHA_4.getIndiceCorFundo(), (byte) 106, (byte) 136, (byte) 186);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.LINHA_5.getIndiceCorFundo(), (byte) 125, (byte) 150, (byte) 194);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.LINHA_6.getIndiceCorFundo(), (byte) 143, (byte) 164, (byte) 200);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.LINHA_7.getIndiceCorFundo(), (byte) 161, (byte) 178, (byte) 206);

    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.INICIO.getIndiceCorFundo(), (byte) 57, (byte) 178, (byte) 63);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.PREVISTO.getIndiceCorFundo(), (byte) 215, (byte) 205, (byte) 42);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.FIM.getIndiceCorFundo(), (byte) 130, (byte) 29, (byte) 37);
    paletaDeCores.setColorAtIndex(EstiloCelulaExcel.ANDAMENTO.getIndiceCorFundo(), (byte) 95, (byte) 95, (byte) 95);

    paletaDeCores.setColorAtIndex((short) 98, (byte) 255, (byte) 255, (byte) 255);
    paletaDeCores.setColorAtIndex((short) 99, (byte) 0, (byte) 0, (byte) 0);
}

我在这里设置了一种细胞样式:

public static HSSFCellStyle getEstilo(EstiloCelulaExcel estiloCelulaExcel, HSSFCellStyle estiloCelula, HSSFFont fonte) {

        estiloCelula.setFillForegroundColor(estiloCelulaExcel.getIndiceCorFundo());
        estiloCelula.setFillPattern(CellStyle.SOLID_FOREGROUND);
        fonte.setColor(estiloCelulaExcel.getIndiceCorFonte());

        estiloCelula.setFont(fonte);

        return estiloCelula;
}

正如文档所述,我只在开头HSSFCellStyle estiloCelula = pastaDeTrabalho.createCellStyle();创建一个cellStyle,并将其作为参数传递给getEstilo(),此方法设置样式并将其返回。

任何人都可以帮我找到问题所在?

谢谢,

0 个答案:

没有答案