Apache POI – 色をカスタマイズするには
色をカスタマイズするには、HSSFPaletteクラスのsetColorAtIndexメソッドを使用します。
HSSFColorクラスで定義されている色は以下の通りです。
色 | HSSFColorクラスで定義されている値 |
---|---|
AQUA | HSSFColor.AQUA |
BLACK | HSSFColor.BLACK |
BLUE | HSSFColor.BLUE |
BLUE_GREY | HSSFColor.BLUE_GREY |
BRIGHT_GREEN | HSSFColor.BRIGHT_GREEN |
BROWN | HSSFColor.BROWN |
CORAL | HSSFColor.CORAL |
CORNFLOWER_BLUE | HSSFColor.CORNFLOWER_BLUE |
DARK_BLUE | HSSFColor.DARK_BLUE |
DARK_GREEN | HSSFColor.DARK_GREEN |
DARK_RED | HSSFColor.DARK_RED |
DARK_TEAL | HSSFColor.DARK_TEAL |
DARK_YELLOW | HSSFColor.DARK_YELLOW |
GOLD | HSSFColor.GOLD |
GREEN | HSSFColor.GREEN |
GREY_25_PERCENT | HSSFColor.GREY_25_PERCENT |
GREY_40_PERCENT | HSSFColor.GREY_40_PERCENT |
GREY_50_PERCENT | HSSFColor.GREY_50_PERCENT |
GREY_80_PERCENT | HSSFColor.GREY_80_PERCENT |
INDIGO | HSSFColor.INDIGO |
LAVENDER | HSSFColor.LAVENDER |
LEMON_CHIFFON | HSSFColor.LEMON_CHIFFON |
LIGHT_BLUE | HSSFColor.LIGHT_BLUE |
LIGHT_CORNFLOWER_BLUE | HSSFColor.LIGHT_CORNFLOWER_BLUE |
LIGHT_GREEN | HSSFColor.LIGHT_GREEN |
LIGHT_ORANGE | HSSFColor.LIGHT_ORANGE |
LIGHT_TURQUOISE | HSSFColor.LIGHT_TURQUOISE |
LIGHT_YELLOW | HSSFColor.LIGHT_YELLOW |
LIME | HSSFColor.LIME |
MAROON | HSSFColor.MAROON |
OLIVE_GREEN | HSSFColor.OLIVE_GREEN |
ORANGE | HSSFColor.ORANGE |
ORCHID | HSSFColor.ORCHID |
PALE_BLUE | HSSFColor.PALE_BLUE |
PINK | HSSFColor.PINK |
PLUM | HSSFColor.PLUM |
RED | HSSFColor.RED |
ROSE | HSSFColor.ROSE |
ROYAL_BLUE | HSSFColor.ROYAL_BLUE |
SEA_GREEN | HSSFColor.SEA_GREEN |
SKY_BLUE | HSSFColor.SKY_BLUE |
TAN | HSSFColor.TAN |
TEAL | HSSFColor.TEAL |
TURQUOISE | HSSFColor.TURQUOISE |
VIOLET | HSSFColor.VIOLET |
WHITE | HSSFColor.WHITE |
YELLOW | HSSFColor.YELLOW |
setColorAtIndexメソッドでは、HSSFColorクラスで定義されている色を変更することになります。
新しい色を追加するわけではありませんので、一旦、変更すると、元々定義されていた色では表示されなくなります。
package net.tk_factory.sample.apache.poi.workbook; import java.io.FileOutputStream; import java.io.IOException; import net.tk_factory.sample.AbstractSample; import org.apache.log4j.Logger; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFPalette; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; /** * Apache POI-HSSFを使用したサンプルプログラムです。<br/> * <br/> * <b>内容</b> * <ol type="1"> * <li>色の構成を変更します。</li> * </ol> * @author Takafumi Kondo (TK Factory) */ public class SampleSetCustomColors extends AbstractSample { /** クラス名 */ private static final String CLASS_NAME = SampleSetCustomColors.class.getSimpleName(); /** ロガー */ private static final Logger LOGGER = Logger.getLogger(SampleSetCustomColors.class.getName()); /** 出力ファイル名 */ private static final String OUT_FILE_NAME = SAMPLE_FILE_DIRECTORY + CLASS_NAME + "Out.xls"; /** * SampleSetCustomColorsオブジェクトを構築すると、 * UnsupportedOperationExceptionがスローされます。<br/> */ protected SampleSetCustomColors() { throw new UnsupportedOperationException(); } /** * mainメソッドです。<br/> * * @param args 引数 */ public static void main(String[] args) { LOGGER.info("[START]" + CLASS_NAME); FileOutputStream out = null; try { //すでに出力ファイルが存在している場合は削除する deleteExistsFile(OUT_FILE_NAME); //ワークブックを生成する HSSFWorkbook workbook = new HSSFWorkbook(); //シートを追加する HSSFSheet sheet = workbook.createSheet(); //行を追加する HSSFRow row = sheet.createRow(1); //パレットを取得する HSSFPalette palette = workbook.getCustomPalette(); //HSSFColorクラスで定義されているREDの色構成を変更する palette.setColorAtIndex(HSSFColor.RED.index, //RGB(赤) 255⇒153 (byte)153, //RGB(緑) (byte)0, //RGB(青) (byte)0); //セルを追加する HSSFCell cell = row.createCell(1); //セルに文字列を設定する cell.setCellValue(new HSSFRichTextString("RED(変更後)")); //背景色を変更したREDで塗りつぶす HSSFCellStyle style = workbook.createCellStyle(); style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setFillForegroundColor(HSSFColor.RED.index); cell.setCellStyle(style); //ファイルを保存する out = new FileOutputStream(OUT_FILE_NAME); workbook.write(out); } catch (IOException ioex) { LOGGER.error(getStackTrace(ioex)); } finally { try { if (out != null) { out.close(); } } catch (IOException ioex) { LOGGER.error(getStackTrace(ioex)); } LOGGER.info("[E N D]" + CLASS_NAME); } } }
関連記事
コメント 0