私の Excel ファイルでは、マクロが特定のセル値を探してから、塗りつぶしの色を変更します。
これらの色のすべての RGB 値があり、ファイルに Apache POI を使用してデータを書き込むときに、これらの色を正確に設定したいと考えています。
これどうやってするの ?
私の Excel ファイルでは、マクロが特定のセル値を探してから、塗りつぶしの色を変更します。
これらの色のすべての RGB 値があり、ファイルに Apache POI を使用してデータを書き込むときに、これらの色を正確に設定したいと考えています。
これどうやってするの ?
私は以前にあなたの問題に似ているかもしれない問題に直面していました。最初にこの例を見て、セルの色を塗りつぶす方法を知っていることを確認してください
:
http://poi.apache.org/spreadsheet/quick-guide.html#CustomColors
簡単に取れるかもしれません。ループ内でセルの値とスタイルを設定しようとする場合、ループのたびにスタイル宣言を更新する必要があります。つまり、ループ内でスタイル変数を再初期化する必要があります。この宣言をループ内に置くようなものです:
for(i=0;i<rowsize;i++){
//
//I suppose that we have an instance named row to working on.
//
XSSFCell cell = row.getCell(i);
XSSFCellStyle style1 = wb.createCellStyle(); //create a fresh instance
cell.setCellValue("custom XSSF colors"); //Set the cell value
//This two line will setup the style of your cell with your needs
style1.setFillForegroundColor(new XSSFColor(new java.awt.Color(128, 0, 128)));
style1.setFillPattern(CellStyle.SOLID_FOREGROUND);
//Finally apply your style
cell.setCellStyle(style1);
}
POI にカスタム カラーを追加する唯一の方法は、デフォルトの色を変更することです。
Workbook wb = ...;
wb.getCustomPalette().setColorAtIndex(HSSFColor.LIGHT_ORANGE.index, (byte) 255, (byte) 171, (byte) 115);