자바<JAVA> JXL 이용하여 엑셀에 쓰기 초간단 예제 자바 프로그램
2009/10/30 16:08 http://blog.naver.com/lover4908/110072755668 |
지금까지 줄곧 엑셀이 데이터 엑스포트 개발하는데에 POI를 써왔는데요.
지금 프로젝트 하는 곳에서는 JXL이라는 녀석을 쓰기를 권장하더군요.
그냥 데이터만 쓰면 되는지라 , 이런 저런 기능 빼고 단간하게 만들었습니다.
/**
*
*/
import java.io.File;
import java.io.IOException;
import jxl.Workbook;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
/**
* @author JunSeong
*
*/
public final class EtcUtil {
/**
* @param file
* @param data
* @throws Exception
*/
public final static void simpleExcelWrite(File file , String data[][]) throws Exception {
WritableWorkbook workbook = null;
WritableSheet sheet = null;
try {
workbook = Workbook.createWorkbook(file); //지정된 파일명 경로로 워크북 즉 엑셀파일일 만듭니다.
workbook.createSheet("Sheet", 0); //지정한 워크북에 싯트를 만듭니다. "Sheet" 가 싯트명이 됩니다.
sheet = workbook.getSheet(0); //시트를 가져옵니다.
WritableCellFormat cellFormat = new WritableCellFormat(); //셀의 스타일을 지정하기 위한 부분입니다.
cellFormat.setBorder(Border.ALL , BorderLineStyle.THIN); //셀의 스타일을 지정합니다. 테두리에 라인그리는거에요
// 빙글빙글 돌리면서 엑셀에 데이터를 작성합니다.
for(int row = 0 ; row<data.length ; row ++) {
for(int col = 0 ; col < data[0].length ; col++) {
Label label = new jxl.write.Label(col , row , (String) data[row][col] , cellFormat);
sheet.addCell(label);
}
}
workbook.write();
} catch (Exception e) {
e.printStackTrace();
throw e;
} finally {
try {
if(workbook != null) workbook.close();
} catch (WriteException e) {
//e.printStackTrace();
} catch (IOException e) {
//e.printStackTrace();
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
String[][] data = new String[][] {
{"COL1" , "COL2" , "COL3" , "COL4"} ,
{"DATA11" , "DATA12" , "DATA13" , "DATA14"} ,
{"DATA21" , "DATA22" , "DATA23" , "DATA24"} ,
{"DATA31" , "DATA32" , "DATA33" , "DATA34"}
};
try {
EtcUtil.simpleExcelWrite(new File("C:/test.xls"), data);
} catch (Exception e) {
e.printStackTrace();
}
}
}
main 는 실행테스트 입니다.
위에 실행하면 아래와 같이 엑셀이 만들어 지더군요.
저만 그런건지 다른사람도 그런건지는 모르겟지만 , 사람을 약간 헷갈리게 하는 요소가 하나 있더군요.
Label label = new jxl.write.Label(col , row , (String) data[row][col] , cellFormat);
이 부분인데 , 라벨을 생성할때 생성자에 시트에 삽입될때 , 삽입될 위치까지 지정하는데 (col 과 row) 보통 행 그리고 열 이런식으로 지정하지 않나요?? 근데 이놈은 열 다음에 행을 지정합니다. 좀 헷갈리더군요. ㅋㅋ
JXL의 API를 살펴보니 , POI보다는 기능이 확실히 떨어집니다.
물론 , 지금은 스타일이 많은게 필요없어서 테두리만 쳤지만 , 색깔이나 이런거는 다 됩니다. 자세한것은 API 찾아보세요. 비교적 간단하더군요. 제가 간단한것만 봐서인지를 모르겟지만....
JXL이 POI보다 기능은 확실이 적지만 , 지금처럼 간단하게 데이터만 쓰는 작업이라고 한다면 , 훨씬 간단하고 편하더군요.
JXL를 사용하기 위해서는 JAR파일이 하나 필요합니다. 올려둘테니 필요하신분은 받으세요.
다음에는 JXL에서 파일 읽어드리는 포스트를 작성하겠습니다.
그 다음에는 POI를 ????
[출처] 자바<JAVA> JXL 이용하여 엑셀에 쓰기 초간단 예제|작성자 달빛
'jsp' 카테고리의 다른 글
자바<JAVA> JXL이용하여 엑셀 읽기 초간단 예제 자바 프로그램 (0) | 2010.06.29 |
---|---|
엑셀 파일 읽기 (1) | 2010.06.28 |
같은 이름을 가지는 여러개의 입력필드의 값 받기 | PHP (0) | 2010.05.15 |
문자열나누기 (0) | 2010.02.23 |
jsp 표준 태그 (0) | 2010.02.10 |