POI excel 파일 생성, 셀 색상 사용자 정의

2704 단어 poiexcel
, 먼저 셀의 배경색을 설정합니다.
  HSSFWorkbook wb = new HSSFWorkbook();
  ...
  HSSFCellStyle style = wb.createCellStyle();
  style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
  style.setFillForegroundColor(HSSFColor.WHITE.index);
  cell.setCellStyle(style);//cell은 HSSFCell 객체입니다.
setFillPattern은 셀 채우기 스타일 설정, SOLID_FOREGROUND 순수한 색은 전경 색으로 채우고, 이어서 전경 색 (setFillForegroundColor) 을 설정하면 칸에 착색할 수 있습니다.setFillForegroundColor() 방법의 매개 변수는 short 형식입니다. POI는 색인을 사용하여 색을 대표합니다. 기본값은 다음과 같습니다.
    8: BLACK
    60: BROWN
    59: OLIVE_GREEN
    58: DARK_GREEN
    ... 
색상 색인은 0x08 ~ 0x40 (8 ~ 64) 의 숫자여야 합니다.
둘째, 다음에 사용자 정의 색을 사용합니다. POI에서 제공하는 기본 색을 사용하지 않으면 사용자 정의 색 인덱스가 필요합니다. HSSFPalette palette = wb.getCustomPalette();//wb HSSFWorkbook 객체 팔레트.setColorAtIndex((short) 9, (byte) (color.getRed()), (byte) (color.getGreen()), (byte) (color.getBlue()));/* 색상을 설정한 인덱스는 8 ~ 64만 가능하며 이 외의 인덱스는 유효하지 않으며 오류가 발생하지 않습니다.다음 세 가지 방법 모두 설정에 성공할 수 있습니다.   palette.setColorAtIndex((short)9, (byte) (0xff & 251), (byte) (0xff & 161), (byte) (0xff & 161));    palette.setColorAtIndex((short)10, (byte) (0x66), (byte) (0xcd), (byte) (0xaa));    palette.setColorAtIndex((short)11, (byte) (255), (byte) (165), (byte) (0)); */그리고 색을 사용합니다. 예를 들어 새로운 색 인덱스로 원래의 색을 바꿀 수 있습니다: 스타일.setFillForegroundColor((short) 9);
3. setFillPattern(), 셀 채우기 스타일 설정(예: style).setFillPattern(HSSFCellStyle.BIG_SPOTS);    style.setFillForegroundColor(HSSFColor.RED.index);    style.setFillBackgroundColor(HSSFColor.LIGHT_BLUE.index); 이렇게 하면 현재 칸은 빨간색과 파란색으로 교체된 칸으로 채워진다
위의 세 줄 코드는 setFillPattern 설정 충전 스타일의 한 줄을 제거하고 전경치와 배경색을 동시에 설정합니다. 생성된 파일은 충전 색이 없습니다. 이때 전경치로 채우지도 않고 배경색으로 채우지도 않습니다.이러한 상황은 setFillPattern(HSSFCellStyle.NO_FILL)과 같습니다.때와 같다.api의 setFillBackgroundColor 방법에는 다음과 같은 예가 있습니다.
public void setFillBackgroundColor(short bg)

set the background fill color.
For example:
 cs.setFillPattern(HSSFCellStyle.FINE_DOTS );
 cs.setFillBackgroundColor(new HSSFColor.RED().getIndex()); 
 // , ( ), 
optionally a Foreground and background fill can be applied:
Note: Ensure Foreground color is set prior to background
 cs.setFillPattern(HSSFCellStyle.FINE_DOTS );
 cs.setFillForegroundColor(new HSSFColor.BLUE().getIndex());
 cs.setFillBackgroundColor(new HSSFColor.RED().getIndex());
or, for the special case of SOLID_FILL:
 cs.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND );
 cs.setFillForegroundColor(new HSSFColor.RED().getIndex());
 
It is necessary to set the fill style in order for the color to be shown in the cell.

좋은 웹페이지 즐겨찾기