반응형
POI 라이브러리를 이용하여 엑셀파일을 출력하는 예제입니다.
일전에 작성하였던 내용에 CellStyle을 이용하여 색상 및 스타일을 지정하는 소스가 추가되었습니다.
티스토리의 게시판 작성방식이 변경되어, 이를 활용하기 위해 게시글을 재작성하였습니다.
변경된 글쓰기에는 코드블럭을 추가할 수 있는 기능이 있기 때문입니다.
이전 글쓰기에 이런 기능이 없어 소스코드를 올리기가 상당히 힘들었는데, 기능이 추가되어 다행입니다.
public static void main(String[] args) {
// Workbook 생성
@SuppressWarnings("resource")
XSSFWorkbook wb = new XSSFWorkbook(); // Excel 2007 이상
XSSFSheet sh = wb.createSheet( "First" );
XSSFRow row = null;
XSSFCell cell = null;
/*
* Excel-File의 스타일을 적용한다.
* - 색상, 글꼴, 정렬, 라인선(테두리선), Formatting
*/
CellStyle csBase = wb.createCellStyle();
// 글꼴
XSSFFont fBase = wb.createFont();
fBase.setFontName( "나눔고딕코딩" ); // Font
fBase.setFontHeightInPoints( (short) 8 ); // Font
csBase.setFont( fBase );
// 색상
csBase.setFillForegroundColor( (short) IndexedColors.LIGHT_BLUE.getIndex() );
csBase.setFillPattern( FillPatternType.SOLID_FOREGROUND );
// 정렬
csBase.setAlignment( HorizontalAlignment.CENTER ); // 중앙정렬
// 라인선(테두리선)
csBase.setBorderLeft( BorderStyle.THIN );
csBase.setBorderRight( BorderStyle.THIN );
csBase.setBorderTop( BorderStyle.THIN );
csBase.setBorderBottom( BorderStyle.THIN );
// Formatting
csBase.setDataFormat( wb.createDataFormat().getFormat( "#,##0" ) );
/*
* Excel-file에 데이터를 출력한다.
*/
row = sh.createRow( 0 ); // 1행
cell = row.createCell( 0 ); cell.setCellValue( "1행1열" );
cell = row.createCell( 1 ); cell.setCellValue( "1행2열" );
row = sh.createRow( 1 ); // 2행
cell = row.createCell( 0 ); cell.setCellValue( "2행1열" );
cell = row.createCell( 1 ); cell.setCellValue( "2행2열" );
cell.setCellStyle( csBase ); // CellStyle 적용
try {
String strFilePath = "E:/TestExcel.xlsx";
FileOutputStream fOut = new FileOutputStream( strFilePath );
wb.write( fOut );
} catch (IOException e) {
e.printStackTrace();
System.exit(0);
}
}
출력할 Excel의 Workbook객체를 생성하고, Row 및 Cell을 지정하에 데이터를 출력합니다.
폰트 및 스타일은 Cell단위로 적용되며, CellStyle 객체를 이용하여 처리할 수 있습니다.
반응형
'Study > Java' 카테고리의 다른 글
[Java] 로또 번호 생성 - 작성 (0) | 2019.06.06 |
---|---|
[Java] JDBC를 이용한 DataBase 접속 (0) | 2019.06.06 |
[Java] 문자열내 원하는 문자(열) 찾기 (0) | 2019.06.06 |
[Java] ASCII 코드를 이용한 끝문자(숫자) 제거 (0) | 2019.06.06 |
[Java] LPAD / RPAD 구현하기 (0) | 2019.06.04 |