개발/JAVA

JAVA Excel 파일 write - WritableWorkbook

LukeHan1128 2021. 8. 5. 20:00
반응형

JAVA 프로그램 개발 중 Excel Export 기능 구현이 필요하였다.

 

대부분 POI 를 사용하여 구현하여 진행하려 하였으나 용량이 180Mb 정도 되었다.

개발하는 프로그램 용량이 10Mb 가 안되는데.. 다른 대안이 필요하였다.

 

jxl (WritableWorkbook) jar 파일 다운로드 : http://www.java2s.com/Code/Jar/j/Downloadjxl26jar.htm

 

// create excel and sheet
WritableWorkbook workbook = Workbook.createWorkbook(new File(path));
WritableSheet sheet1 = workbook.createSheet("시트1",0);
WritableSheet sheet2 = workbook.createSheet("시트2",1);

// header style
WritableFont headerStyle = new WritableFont(WritableFont.TAHOMA, 11, WritableFont.BOLD, false);
WritableCellFormat headerFormat = new WritableCellFormat(headerStyle);
headerFormat.setBackground(Colour.GOLD);
headerFormat.setBorder(jxl.format.Border.ALL, BorderLineStyle.THIN);
headerFormat.setAlignment(Alignment.CENTRE);

// cell style
WritableFont cellStyle = new WritableFont(WritableFont.TAHOMA, 11, WritableFont.NO_BOLD, false);
WritableCellFormat cellFormat = new WritableCellFormat(cellStyle);
cellFormat.setVerticalAlignment(jxl.format.VerticalAlignment.TOP);
cellFormat.setBorder(jxl.format.Border.ALL, BorderLineStyle.THIN);


// add data - header
sheet1.addCell(new jxl.write.Label(0, 0, "No", headerFormat));
sheet1.addCell(new jxl.write.Label(1, 0, "문서명", headerFormat));
sheet1.addCell(new jxl.write.Label(2, 0, "설명", headerFormat));

// add data - cell
sheet1.addCell(new jxl.write.Label(0, 1, "1", cellFormat));
sheet1.addCell(new jxl.write.Label(1, 1, "예제 문서", cellFormat));
sheet1.mergeCells(1, 1, 1, 2);	// = (시작셀x , 시작셀y, 종료셀x, 종료셀y)
sheet1.addCell(new jxl.write.Label(2, 1, "예제로 활용하기 위한 문서", cellFormat));

// set width height
sheet1.setRowView(0,100);
sheet1.setColumView(0,20);
sheet1.setColumView(1,20);

// add hyper link
sheet2.addHyperlink(new WritableHyperlink(
	0	// 링크 적용할 셀의 x좌표
    , row	// 링크 적용할 셀의 y좌표
    , str	// 링크 내용
    , workbook.getSheet(str)	// 이동할 시트
    , 0		// 이동할 시트의 x좌표
    , 0		// 이동할 시트의 y좌표
));

// write and close
workbook.write();
workbook.close();

 

반응형