개발자의 끄적끄적

[java] POI 엑셀 생성하기(제목 스타일,본문 스타일 지정,컬럼 사이즈 자동 조정하기) 본문

개발/java & jsp

[java] POI 엑셀 생성하기(제목 스타일,본문 스타일 지정,컬럼 사이즈 자동 조정하기)

효벨 2020. 5. 12. 02:00
728x90
반응형

[java] POI 엑셀 생성하기(제목 스타일,본문 스타일 지정,컬럼 사이즈 자동 조정하기)

 

HSSFWorkbook workbook = new HSSFWorkbook();

Font defaultFont = workbook.createFont();       
defaultFont.setFontHeightInPoints((short) 11);
defaultFont.setFontName("맑은 고딕");

 

//제목 스타일
CellStyle HeadStyle = workbook.createCellStyle();
HeadStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HeadStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
HeadStyle.setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index);
HeadStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
HeadStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
HeadStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
HeadStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
HeadStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
HeadStyle.setFont(defaultFont);

 

//본문 스타일
CellStyle BodyStyle = workbook.createCellStyle();
BodyStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT);
BodyStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
BodyStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
BodyStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
BodyStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
BodyStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
BodyStyle.setFont(defaultFont);   

HSSFSheet firstSheet  = workbook.createSheet("시트이름");


//데이터 입력
for (int s = 0; s < list.size(); s++){
    HSSFRow row = firstSheet.createRow(s);
    List<String> contentList = list.get(s);

    for (int i = 0; i < contentList.size(); i++){
        String content = contentList.get(i);
        HSSFCell cell = row.createCell(i);
        cell.setCellValue(new HSSFRichTextString(content));
        if (s == 0){
            cell.setCellStyle(HeadStyle); // 제목스타일
        }
        else{
            cell.setCellStyle(BodyStyle); // 본문스타일
        }
    }
}

/** 3. 컬럼 Width */
for (int i = 0; i <  list.size(); i++){
    firstSheet.autoSizeColumn(i);
    firstSheet.setColumnWidth(i, (firstSheet.getColumnWidth(i)) + 1000);
}



출처: https://waqoon.tistory.com/136 [와쿤의 IT 이야기]

반응형
Comments