먼저 관련사이트 에서 jexcelapi 를 다운받는다.
압축파일을 열어보면 관련 javadoc 및 소스파일도 함께 있으니 참고하시길...
여하튼 jxl.jar 파일을 관련 프로젝트에 등록한다.
[관련 클래스 간략설명]
jxl.write.WritableWorkbook : workbook,sheet등을 생성 및 관리하기 위한 엑셀파일관리 추상 클래스
jxl.Workbook : 기본 엑셀파일 추상 클래스
jxl.write.WritableSheet : sheet를 관리하는 인터페이스
jxl.write.WritableCellFormat : 엑셀 내 cell관련 포맷정보
jxl.write.Label : 엑셀내 필드명(엑셀의 cell에 들어있는 데이타 값이라 생각하면 된다)
jxl.write.Blank : 빈 cell관리 클래스
[엑셀 처리]
1. 엑셀파일을 생성한다
WritableWorkbook testExcel = Workbook.createWorkbook(new File("sample.xls"));
기존의 엑셀파일을 읽어와 처리하고자 하는 경우에는 다음과 같다.
WritableWorkbook testExcel = Workbook.getWorkbook(new File("sample.xls"));
2. 생성된 엑셀관리 객체의 sheet를 선택한다
WritableSheet sheet1 = testExcel.createSheet("1stShell", 0);
위의 경우 새로이 생성된 엑셀파일내 새로운 sheet를 추가하는 것이라면
기존의 생성된 특정 sheet를 선택하고자 하는 경우 다음과 같다
WritableSheet sheet0 = testExcel.getSheet("preShell") ;
3. 셀서식을 설정한다
WritableCellFormat titleFormat= new WritableCellFormat();
- 폰트 설정
WritableCellFormat은 쉘정열 및 테두리설정 및 배경색 등 셀서식과 관련된 설정을 할 수 있다.
폰트 설정의 경우 다음과 같이 처리한다.
WritableCellFormat titleFormat
= new WritableCellFormat(
new WritableFont (WritableFont.ARIAL, // 폰트 타입.Arial 외 별다른건 없는듯 하다.
20, // 폰트 크기
WritableFont.BOLD, // Bold 스타일
false, // 이탤릭체여부
UnderlineStyle.NO_UNDERLINE, // 밑줄 스타일
Colour.WHITE, // 폰트 색
ScriptStyle.NORMAL_SCRIPT)); // 스크립트 스타일
폰트 설정의 경우 위와 같이 Font설정 객체를 생성한후 서식객체 생성시 인자로 넣으면 된다.
다양한 생성자를 제공하고 있으니 굳이 위화면과 같이 할 필요는 없다. (API 참조)
- 셀 서식 설정
기타 셀서식과 관련 주로 사용하는 기능을 설명하면 다음과 같다.
titleFormat.setAlignment(Alignment.CENTRE); // 셀 가로정열(좌/우/가운데설정가능)
titleFormat.setVerticalAlignment(VerticalAlignment.CENTRE);
// 셀 세로정렬(상단/중단/하단설정가능)
titleFormat.setBorder(Border.ALL, BorderLineStyle.THICK); // 보더와 보더라인스타일 설정
titleFormat.setBackground(Colour.ICE_BLUE); // 배경색 설정
4. 데이타를 셀에 등록한다
Label title = new Label(0, 0, "테스트 타이틀", titleFormat);
//라벨(열,행,"문장",포멧) : 숫자형은 Number를 사용
sheet1.addCell(title); // sheet1의 1열1행에 "테스트 타이틀"이라는 데이타를 넣는다
--> 데이타 등록을 위한 Label 생성시 첫번째 인자는 sheet의 열,
두번째 인자는 행을 의미한다는 것에 주의...
5. Sheet 디자인 설정
이부분은 해도 그만 안해도 그만이지만 깔끔한 엑셀저장을 위한 선택코스?
- 셀 크기 변경
관련메소드는 setColumnView(몇번째 컬럼, 넓이)
sheet1.setColumnView(0, 20); //sheet1의 첫번째 열의 크기를 20으로 설정한다
또는
CellView cv = sheet1.getColumnView(0);
cv.setSize(30);
sheet1.setColumnView(0,cv); //기존의 열정보 변경. 30으로 변경한다
- 셀병합
sheet1.mergeCells(0, 0, 5, 0 ); //sheet1의 1열1행의 cell을 6열1행의 셀까지 병합한다.
- 빈 셀 처리
Blank blank = new Blank(6, 0, titleFormat); // 빈 셀(열,행,포멧)
sheet1.addCell(blank); // 위의 병합셀옆에 같은서식의 빈셀추가
6. 데이타를 파일에 저장한다.
testExcel.write(); // 쓰고
testExcel.close(); // 닫자
'IT_Programming > Java' 카테고리의 다른 글
jxl.jar를 이용해서 Excel file 생성하기 (0) | 2008.01.25 |
---|---|
[펌] java(자바)로 excel(엑셀) 파일 활용 (jxl api) 정리 (0) | 2008.01.25 |
클래스에서 enhanced For-Loop 사용 (0) | 2008.01.24 |
JTree로 드래그-앤-드롭(Adding Drop Support with JTree) 추가 (0) | 2008.01.24 |
JavaTM Web Start (0) | 2008.01.23 |