-
[본문스크랩] POI을 사용해Java로부터Excel출력DreamFactory 2006. 12. 11. 17:53
Apache/Jakarta편 
POI을 사용해Java로부터Excel출력을 실시하는
WINGS프로젝트
상록수 아츠오·오카아구
2004/8/3겉(표) 형식의 데이터 보존에는 ,CSV형식의 텍스트 파일을 이용하는 것이 일반적입니다. 그러나 , 용도에 따라서는 ,Microsoft Excel그리고 작성한 것 같은 볼품이 좋은 겉(표) 형식에서의 출력이 요구되는 일이 있습니다.
그런데 , 본고에서는 「POI」이라고 불리는Java의 라이브러리를 사용해 ,Excel파일을 출력하는 방법을 소개합니다. POI(은)는 ,Excel이나Word등의 「Microsoft OLE 2복합 문서 형식」에 준거한 파일을Java로 취급하기 위한API군입니다. 여기에서는 ,POI중(안)에서Excel출력을 실시하는 「HSSF」이라고 불리는 컴퍼넌트를 사용하는 예를 소개합니다.

POI에 의해 생성된Excel파일
주:POI의 입수처나 필요한JAR파일에 대해서는 , 「서버 사이드 기술의 배움사 - WINGS」에 있는 「서버 사이드 환경 구축 설정」을 참조해 주세요.이하는 , 방금전 가리킨Excel파일을Java로부터 생성하기 위한 프로그램입니다.
PoiSample.java packageto.msn.wings;
importjava.io.FileOutputStream;
importorg.apache.poi.hssf.usermodel.HSSFSheet;
importorg.apache.poi.hssf.usermodel.HSSFWorkbook;
importorg.apache.poi.hssf.usermodel.HSSFRow;
importorg.apache.poi.hssf.usermodel.HSSFCell;
publicclassPoiSample{
publicstaticvoidmain(String[]args){
try{
//신규 워크북을 작성하는
HSSFWorkbookwb=newHSSFWorkbook();
FileOutputStreamfileOut=newFileOutputStream("C:\PoiSampleBook.xls");
//신규 워크시트를 작성하는
HSSFSheetsheet1=wb.createSheet();
HSSFSheetsheet2=wb.createSheet();
//작성한 시트명을 변경
//일본어 시트명을 지정하는 경우에는 인코딩 설정은 필수
wb.setSheetName(0,"sheet1");
wb.setSheetName(1,"시트 2",HSSFWorkbook.ENCODING_UTF_16);
//행 오브젝트의 작성(행 번호는0스타트)
HSSFRowrow2=sheet1.createRow(1);
//셀 오브젝트의 작성(셀 번호는0스타트)
//인수는short형태로 캐스트 해야 하는 점에 주의
HSSFCellcellB2=row2.createCell((short)1);
HSSFCellcellC2=row2.createCell((short)2);
//셀에 값을 설정하는
cellB2.setCellValue("B2");
//셀에 일본어의 값을 설정하는
//일본어의 값을 지정하는 경우에는 인코딩 설정은 필수
cellC2.setEncoding(HSSFCell.ENCODING_UTF_16);
cellC2.setCellValue("C2일본어");
//작성한 워크북을 보존하는
wb.write(fileOut);
fileOut.close();
System.out.println("Excel파일의 작성이 완료했습니다! ");
}catch(Exceptione){
e.printStackTrace();
System.out.println("처리가 실패했습니다");
}
}
}Excel의 오브젝트 조작에는 , 아래와 같은 클래스를 사용합니다. 북 , 시트 , 행 , 셀로부터 구성되는 클래스 구조는 ,Excel의 구조를 직관적으로 나타내고 있는 것이므로 , 알기 쉬울 것입니다.
POI(HSSF) 에 포함되는 주요한 클래스클래스명 설명 HSSFWorkbook Excel의 워크북을 취급하는 클래스 HSSFSheet 워크시트를 취급하는 클래스 HSSFRow 행을 취급하는 클래스 HSSFCell 셀을 취급하는 클래스 이 샘플 프로그램의 상세한 것에 대하여는 , 코드내에 있는 코멘트를 참고로 해 주세요. 여기에서는 ,POI을 이용할 때의 성형적인 코드가 흐르고를 이하에 나타내 둡니다.
- 신규 워크북의 작성(HSSFWorkbook클래스)
- 신규 워크시트의 작성(HSSFWorkbook#createSheet메소드)
- 대상열의 취득(HSSFSheet#createRow메소드)
- 대상 셀의 취득(HSSFRow#createCell메소드)
- 셀치의 설정(HSSFCell#setCellValue메소드)
- 파일 보존(HSSFWorkbook#write메소드)
이것이 ,POI를 이용해Excel파일을 신규 작성하는 경우의 기본적인 수속이 됩니다. 향후 소개하는 , 보다 복잡한 파일 출력예를 설명할 때의 기본이 되기 때문에 , 상기의 코드와 대조해 , 확실히 이해해 두어 주세요.
출처 : http://j2k.naver.com/j2k.php/width/www.atmarkit.co.jp/fjava/javatips/070jakarta001.html