본문 바로가기

app/java

JXL 폰트, 셀병합, 셀크기, 셀색깔, 테두리

invalid-file

JXL-api

<관련 클래스 간략설명>

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(); // 닫자

-0-상당히뒤져서나온귀한정보..ㅋㅋ이거보고..겨우알바를바쳤따..후..힘들었어~
API도첨부해요~=-=다운바드실라면바드시고~-0-ㅋㅋ(영어라서..해석이힘들었어;;ㅎㅎ)