728x90
반응형

POI는 자바에서 엑셀 문서를 만들어기 위해서 만들어진 아파치 라이브러리입니다.

실제로 엑셀에서 값을 체우기 위해서 할 수 있는 거의 모든 작업을 할 수 있습니다. 

여기에서는 사용법과 대표적인 기능 몇 가지를 소개합니다. 

 

 

우선 Dependency는 아래와 같습니다. 

 <dependency>

<groupId>org.apache.poi</groupId>

<artifactId>poi</artifactId>

<version>3.10-FINAL</version>

</dependency>

 

혹시 모르니 jar파일도 첨부합니다.

 

 

1. 새 엑셀 파일을 만들고 새로운 시트를 만들자.

 Workbook wb = new HSSFWorkbook();

Sheet sheet1 = wb.createSheet("new sheet");

FileOutputStream fileOut = new FileOutputStream("C:/workbook.xls");

wb.write(fileOut);

fileOut.close();

 

 

위와 같이 코드를 작성한다면 c:\ 의 위치에 workbook.xls라는 파일이 생긴 것을 확인 하실 수 있습니다. 파일이 생성 될 때는 저장 장소를 선택한다는 등의 액션이 일어나지 않으니 아무런 반응이 없다고 당황하지 마시고 저장한 경로로 들어가서 확인해 보시기 바랍니다.

 

코드를 보면 createSheet로 시트를 생성, 이름을 줄 수 있으며, 그것을 파일로 내보내는 것을 알 수 있습니다.

 

 

 

2. 엑셀 필드에 값을 체워보자.

 Workbook wb = new HSSFWorkbook();

Sheet sheet1 = wb.createSheet("new sheet");

 

Row row = sheet1.createRow((short) 0);

for(int idx=0; idx<5; idx++){

Cell cell = row.createCell(idx);

cell.setCellValue(idx);

}

 

FileOutputStream fileOut = new FileOutputStream("C:/workbook.xls");

wb.write(fileOut);

fileOut.close();

 

생성된 시트에 새로운 줄을 넣기 위한 Row를 생성합니다.

그리고 그 Row에 접근하여 셀을 생성하며 setCellValue로 그 셀에 값을 체워 넣을 수 있습니다.

엑셀은 이렇듯 Sheet - Row - Cell 순서로 접근하여 값을 조작하게 됩니다.

 

 

 

3. 컬럼의 크기를 변경해보자.

 Workbook wb = new HSSFWorkbook();

Sheet sheet1 = wb.createSheet("new sheet");

sheet1.setColumnWidth(0, 13*256);

sheet1.setColumnWidth(3, 50*256);

sheet1.setColumnWidth(5, 21*256);

 

...

 

 엑셀에서 컬럼의 크기는 셀이나 줄마다 바뀔 수 있는 것이 아니기 때문에 Sheet에 접근해서 설정합니다.

setColumnWidth(Column Index, width size)의 순서입니다. n * 256의 형태로 한 이유는 1글자가 256의 크기를 갖기 때문에 13글자가 들어갈 만큼의 공간을 갖기 위해서 13 * 256 과 같은 형태를 사용했습니다.

 

 

 

4. 셀에 여러가지 옵션을 주자.

 CellStyle style = wb.createCellStyle();

style.setBorderBottom(CellStyle.BORDER_THIN); //테두리 두껍게 

style.setBorderLeft(CellStyle.BORDER_THIN);

style.setBorderRight(CellStyle.BORDER_THIN);

style.setBorderTop(CellStyle.BORDER_THIN);

 

style.setAlignment(CellStyle.ALIGN_CENTER);  //가운데 정렬

Font font = wb.createFont();

font.setBoldweight(Font.BOLDWEIGHT_BOLD);  //글씨 bold

 

Cell cell = row.createCell(0); 

cell.setCellValue("1234"); 

cell.setCellStyle(style);

 

 

셀에 여러가지 옵션을 주기 위해서는 CellStyle을 이용합니다.

테두리의 굵기, 정렬, 글씨의 색상, 셀의 색상등 다양한 작업을 할 수 있습니다.

 

 

 

기타 다른 예제들은 아래의 주소를 참고해주세요.

http://poi.apache.org/spreadsheet/quick-guide.html

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,