2013-03-31 3 views
19

apache POI에서 다음 코드를 사용하여 전경색을 변경할 수 있습니다. 이제 단일 셀의 글꼴 색을 변경하고 싶습니다.특정 셀 apache poi의 글꼴 색상을 변경하는 방법 3.9

CellStyle style = wb.createCellStyle(); 
         style.setFillForegroundColor(IndexedColors.GREEN.getIndex()); 
         style.setFillPattern(CellStyle.SOLID_FOREGROUND); 
         cell = rowxl.createCell((short) 7); 
         cell.setCellValue(" <<<<ONTRACK>>>>"); 
         cell.setCellStyle(style); 


         rowxl.createCell(0).setCellValue(TEAM); 

나는 이것을 시도했지만 먼저 두 개의 열

의 색상을 변경하지 않습니다

코드 :

public class fclr { 
    public static void main(String[] args) throws Exception { 

     InputStream inp = new FileInputStream("c:/workbook1.xls"); 
      Workbook wb = WorkbookFactory.create(inp); 
      CreationHelper createHelper = wb.getCreationHelper(); 
      Sheet sheet = wb.getSheetAt(0); 
      Row rowxl = sheet.createRow((short)0); 


      Cell cell = rowxl.createCell(0); 

      //apply some colors from the standard palette, 
      // as in the previous examples. 
      //we'll use red text on a lime background 

      CellStyle style = wb.createCellStyle(); 


      rowxl.createCell(1).setCellValue("ABC"); 
     rowxl.createCell(2).setCellValue("aaa"); 
      Font font = wb.createFont(); 
      font.setColor(HSSFColor.BLACK.index); 
      style.setFont(font); 


      cell.setCellStyle(style); 

      FileOutputStream fileOut = new FileOutputStream("c:/workbook1.xls"); 
      wb.write(fileOut); 
      fileOut.close(); 



    } 

} 
+0

poi 가이드의 Font.setColor를 보았습니까? http://poi.apache.org/spreadsheet/quick-guide.html – MrSimpleMind

+1

셀 0을 두 번 만드는 이유는 무엇입니까? 그리고 셀 1에 셀 스타일을 지정하지 않는다는 것을 알고 있습니까? – Gagravarr

+1

@Gagravarr 예 thats 특정 셀에 cellstyle을 할당하는 방법 자습서에서 찾지 못했던 – H4SN

답변

46

당신은 두 번 세포의 일부를 만들, 그것의 이유 모두 잘못되었습니다.

첫째, 셀 스타일 생성을 코드 상단으로 이동하는 것이 좋습니다. 기억하십시오 - 셀 스타일의 범위가 통합 문서이므로 셀당 하나를 만들지 마십시오!

 CellStyle style = wb.createCellStyle(); 
     Font font = wb.createFont(); 
     font.setColor(HSSFColor.BLACK.index); 
     style.setFont(font); 
     // Set more colours on the style as needed 
     // Set formatting rules on the style as needed 

지금, 당신의 취향에 따라 다음과 같이 휴대 생성을 중 하나를

 Cell cell; 

     cell = rowxl.createCell(0); 
     cell.setCellValue("ABC"); 
     cell.setCellStyle(style); 

     cell = rowxl.createCell(1); 
     cell.setCellValue("aaa"); 
     cell.setCellStyle(style); 

또는 다음과 같이 :

rowxl.createCell(1).setCellValue("ABC"); 
    rowxl.createCell(2).setCellValue("aaa"); 
    rowx1.getCell(1).setCellStyle(style); 
    rowx1.getCell(2).setCellStyle(style); 

를 그냥 '당신에게 이상한 하이브리드을하지 않는다 당신이 셀을 두 번 만들고 스타일을 잃어 버리는 것을 끝내기 때문에, 순간에있어!

+1

이미 whith 메소드 1을 언급하고 해결했습니다. – H4SN

+1

HSSFColor.BLACK은 HSSFColor.HSSFColorPredefined 대신에 사용되지 않습니다. 검은 –

관련 문제