POI POI 셀 스타일 설정을 위한 예제 소스

황제낙엽 2008.05.16 14:49 조회 수 : 1379 추천:110

sitelink1 http://www.javaservice.net/~java/bbs/rea...1054519522 
sitelink2  
sitelink3 http://1 
extra_vars4 ko 
extra_vars5  
extra_vars6 sitelink1 
        //통합 문서 생성을을 위한 Workbook인스턴스 생성   
        HSSFWorkbook wb = new HSSFWorkbook();   
           
        //엑셀화일의 새로운 Sheet를 만들어진 Workbook인스턴스에 생성함   
        HSSFSheet sheet1 = wb.createSheet("sheet1");   
           
        //해더부분셀에 스타일을 주기위한 인스턴스 생성   
        HSSFCellStyle cellStyle = wb.createCellStyle();            
        cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);                     //스타일인스턴스의 속성 셑팅           
        cellStyle.setFillForegroundColor(HSSFCellStyle.GREY_25_PERCENT);        //셀에 색깔 채우기   
        cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);   
        cellStyle.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);              //테두리 설정   
        cellStyle.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);   
        cellStyle.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);   
        cellStyle.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM);   
        HSSFFont font = wb.createFont();                                    //폰트 조정 인스턴스 생성   
        font.setBoldweight((short)700);        
        cellStyle.setFont(font);   
           
        //가운데 정렬과 얇은 테두리를 위한 스타일 인스턴스 생성   
        HSSFCellStyle cellStyle0 = wb.createCellStyle();                           
        cellStyle0.setAlignment(HSSFCellStyle.ALIGN_CENTER);   
        cellStyle0.setBorderRight(HSSFCellStyle.BORDER_THIN);   
        cellStyle0.setBorderLeft(HSSFCellStyle.BORDER_THIN);   
        cellStyle0.setBorderTop(HSSFCellStyle.BORDER_THIN);   
        cellStyle0.setBorderBottom(HSSFCellStyle.BORDER_THIN);   
           
        //얇은 테두리를 위한 스타일 인스턴스 생성   
        HSSFCellStyle cellStyle1 = wb.createCellStyle();           
        cellStyle1.setBorderRight(HSSFCellStyle.BORDER_THIN);   
        cellStyle1.setBorderLeft(HSSFCellStyle.BORDER_THIN);   
        cellStyle1.setBorderTop(HSSFCellStyle.BORDER_THIN);   
        cellStyle1.setBorderBottom(HSSFCellStyle.BORDER_THIN);   
           
        //Sheet에 첫번재 Row(가로열)생성   
        HSSFRow row = sheet1.createRow((short)0);   
        row = sheet1.createRow((short)1);   
       
        // 셀별 위드 정하기 헤더 그리기    
        sheet1.setColumnWidth((short)0, (short)2000);   
        sheet1.setColumnWidth((short)1, (short)5000);   
        sheet1.setColumnWidth((short)2, (short)7000);   
        sheet1.setColumnWidth((short)3, (short)5000);   
        sheet1.setColumnWidth((short)4, (short)3000);   
        sheet1.setColumnWidth((short)5, (short)3000);   
        sheet1.setColumnWidth((short)6, (short)3000);   
                   
       
        // 헤더 그리기    
        HSSFCell cell = row.createCell((short)0);          
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);    
                           
        cell.setCellStyle(cellStyle);   
        cell.setCellValue("계약ID");   
           
        cell = row.createCell((short)1);   
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);   
        cell.setCellStyle(cellStyle);   
        cell.setCellValue("사업자명");   
           
        cell = row.createCell((short)2);   
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);   
        cell.setCellStyle(cellStyle);   
        cell.setCellValue("홈페이지");   
       
        cell = row.createCell((short)3);   
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);   
        cell.setCellStyle(cellStyle);   
        cell.setCellValue("대표전화");   
               
        cell = row.createCell((short)4);   
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);   
        cell.setCellStyle(cellStyle);   
        cell.setCellValue("계약일자");   
           
        cell = row.createCell((short)5);   
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);    
        cell.setCellStyle(cellStyle);   
        cell.setCellValue("개통일자");   
           
        cell = row.createCell((short)6);   
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);   
        cell.setCellStyle(cellStyle);   
        cell.setCellValue("연결일자");             
  
-------------------------------------------------------------------------
속성을 정하는 스타일 객체를 각각 틀린 스타일 마다 따로 생성해줘야 하기때문에   
상당히 번거롭고 소스가 복잡해지더군요..   
제대로 정리할 내공도 부족하고.....   
이건 소스 편집보다는 툴을 하나 만드는게 더 나을듯...   
poi 디자인 코드 생성툴...ㅡㅡㅋ;;   
배보다 배꼽이 크네여..
-------------------------------------------------------------------------