위와 같이 WritableWorkbook 클래스로 객체를 생성해주고 WiritableSheet 클래스로 workbook 객체에 sheet를 생성한다. createSheet(시트 이름, 시트 인덱스)로 사용한다.
이후에 WritableFont와 WritableCellFormat 클래스로 이후 추가할 셀의 폰트와 배경색, 서체 등을 설정할 수 있다.
addCell 메서드를 통해 Cell을 위와 같이 추가한다. new Label(x좌표, y좌표, 셀의 내용, 셀의 포맷) 형식으로 사용한다.
두번째 라인처럼 mergeCell(셀 병합 시작할 x좌표, 셀 병합 시작할 y좌표, 셀 병합 끝낼 x좌표, 셀 병합 끝낼 y좌표)로 셀을 병합할 수 있다.
setRowView(x좌표, 높이) 와 setColumnView(y좌표, 너비) 메서드를 이용해 특정 셀의 높이와 너비를 조정할 수 있다.
셀에 하이퍼링크를 추가할 경우 addHyperLink(new WritableHyperlink(
하이퍼링크를 걸 셀의 x좌표,
하이퍼링크를 걸 셀의 y좌표,
하이퍼링크 내용,
이동할 시트,
이동할 시트의 x좌표,
이동할 시트의 y좌표)
를 이용해 하이퍼링크를 추가할 수 있다. 기존 셀에 내용과 포맷이 있는 상태에서 하이퍼링크를 이용하면 기존의 내용과 포맷은 사라지고 파란 폰트와 밑줄이 있는 하이퍼링크 내용만 셀에 남게 된다. 그 이후에 셀 내용과 포맷을 덮어쓰면 하이퍼링크는 남아있으나 하이퍼링크를 표시하는 파란 폰트와 밑줄이 사라져 마우스를 대보지 않는 한 하이퍼링크임을 알기 어렵다. 그래서 난 다시 폰트색을 파란색으로 변경해주었다. (기존 셀 포맷만 남기고 하이퍼링크 내용을 입력하는 방법이 있다면 댓글 부탁드립니다.)
엑셀 작성을 완료한 뒤에 write를 해주면 엑셀파일에 시트와 셀이 작성되며, close로 버퍼를 해제해준다.
write 선언 이후에 추가로 엑셀 작성시 workbook 객체를 null로 인식하며 에러가 발생해서 작성이 끝난 마지막에 write를 한번 호출해주어야 하는 것 같다.
'JAVA' 카테고리의 다른 글
[JAVA]HttpUrlConnection : POST 방식 (0) | 2021.01.21 |
---|---|
[JAVA] int와 Integer 값 비교, 그리고 128 (0) | 2020.12.17 |
[JAVA] 큐 정렬하기 Queue<String> sorting (0) | 2020.12.01 |
JAR파일 MANIFEST.MF 수정 (0) | 2020.11.06 |
executeBatch()메서드 (0) | 2019.08.23 |