2012-07-25 4 views
1

내 Excel 파일에서 매크로는 특정 셀 값을 찾은 다음 채우기 색을 변경합니다.Apache Poi로 Excel 색상 복제하기

저는이 색상에 대한 모든 RGB 값을 가지고 있으며 파일에 Apache POI로 데이터를 쓸 때이 색상을 정확하게 설정하려고합니다.

어떻게하면됩니까?

답변

0

내가 POI에서 사용자 지정 색상은 기본 색상을 변화시키고 추가 알고있는 유일한 방법 :

Workbook wb = ...;  
wb.getCustomPalette().setColorAtIndex(HSSFColor.LIGHT_ORANGE.index, (byte) 255, (byte) 171, (byte) 115); 
+0

통합 문서에 팔레트도 다른 곳에서는 내가 찾을 수에 액세스하는 그런 방법은 존재하지 않는다. –

+0

죄송합니다.이 메서드는 HSSFWorkbook 하위 클래스에서만 정의되어 있다는 것을 알았습니다. – polypiel

3

내가 전에 문제에 대한 유사 할 수 있습니다 문제에 직면했다. 먼저이 예제를보고 셀의 채우기 방법을 알고 있는지 확인하십시오.
http://poi.apache.org/spreadsheet/quick-guide.html#CustomColors
잘하는 것처럼 보이지만 쉽게 잡힐 수 있다는 공통적 인 오류를 발견했습니다. 루프에서 셀 값과 스타일을 설정하려고하면 스타일 선언은 매 라운드 반복해야합니다. 즉, 루프 내에서 스타일 변수를 다시 초기화해야합니다. 당신이 당신의 루프 내에서이 선언을 넣어처럼 어떻게 든입니다 : POI 3.8에서

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); 
} 
관련 문제