반응형
자바 JXL API 를 이용한 Excel 파일 만들기
1. JXL API 다운 받기
2. JSP에서 사용할 class 만들기
3. JSP에서 적용하기
4. 요구 사항에 맞게 확장하기
1. 환경 설정
JAVA에서 Excel을 만들기 위해서는 JXL API 나 POI를 이용해야 한다.
우선 이번장에서는 JXL을 이용하여 만드는 방법에 대해서 소개하기로 한다.
Java Excel API - A Java API to read, write and modify Excel spreadsheets ( 이하 JXL )은
다음과 같은 홈페이지에서 다운 받을 수 있다
파일 다운 받기 :
API 정보 :
우선 사이트에서 가장 최신 버젼의 JExcelApi를 다운 받는다.
압축을 해제한 후에 각 사용자 환경에 맡게 jar 파일을 옮긴다.
( 일반 JAVA User - j2sdk 폴더 밑에 jrelibext 파일로 옮긴다. )
2. JSP에서 사용할 class 만들기
- 파일 다운로드 -
1. Parameter 정보
JSP에서 class로 넘겨주는 정보는 다음과 같다.
Vector data :: Query를 통해 나온 Recordset 집합
String[] column :: column 이름 <- Excel 에서 Head 역할
int[] columntype :: column 타입 <- 문자형, 정수형, 실수형 으로 구분하였다.
String FilePath :: Excel 파일을 저장하기위한 절대 경로
String SheetName :: Sheet 이름
2. Excel File 생성하기
Excel 파일음 다음과 같이 생성을 한다
WritableWorkbook workbook = Workbook.createWorkbook(new File(FilePath));
WritableSheet sheet = workbook.createSheet(SheetName, 0); - FilePath :: Excel 파일을 저장하기위한 절대 경로
- SheetName :: 시트 이름
- 0 :: 시트 인덱스 번호
3. Cell Type 지정하기
a. Text 형
jxl.write.WritableCellFormat format_column = new WritableCellFormat();
jxl.write.WritableCellFormat format_data = new WritableCellFormat(); b. 정수형 ( 1000단위 마다 , 찍기 X )
jxl.write.WritableCellFormat format_integer1 = new WritableCellFormat(NumberFormats.INTEGER);
c. 정수형 ( 1000단위 마다 , 찍기 O )
jxl.write.NumberFormat moneytype1 = new NumberFormat("###,##0");
jxl.write.WritableCellFormat format_integer2 = new WritableCellFormat(moneytype1);
d. 실수형 ( 1000단위 마다 , 찍기 X )
jxl.write.WritableCellFormat format_float1 = new WritableCellFormat(NumberFormats.FLOAT); e. 실수형 ( 1000단위 마다 , 찍기 0 , 소수점 2자리 허용 )
jxl.write.NumberFormat moneytype2 = new NumberFormat("###,##0.00");
jxl.write.WritableCellFormat format_float2 = new WritableCellFormat(moneytype2); 4. CELL Color & BackGround 지정하기
format_column.setBackground(jxl.format.Colour.GRAY_25 ); format_column.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN ); . .
5. DB To Excel
a. Head 부분 생성하기
for ( cellnum = 0; cellnum < column.length; cellnum++ ) {
label = new jxl.write.Label(cellnum,0,column[cellnum],format_column); sheet.addCell(label); } b. Data 집어 넣기
for ( rownum = 1; rownum <= data.size() ; rownum++) {
dataResult = (String[])data.get(rownum-1); for (cellnum = 0; cellnum < dataResult.length - 1; cellnum++) { num = new jxl.write.Number(cellnum, rownum, Long.parseLong(dataResult[cellnum+1]),format_integer2); sheet.addCell(num); } } 3. JSP에서 사용하기
<%@ page import="java.util.Vector, crm.util.Util, java.sql.*" contentType="text/html; charset=euc-kr" %>
<jsp:useBean id="cExcel" class="crm.util.CreateExcel" scope="page"/>
cExcel.CreateExcelFile(queryResult,column,columntype,file_path+file_name,sheet_name,str_search);
4. 요구 사항에 맞게 확장하기
JXL API를 제공하는 홈페이지에 가면 JXL API SDK를 다운 받을 수 있다. JXL API SDK를 다운 받은 후 사용자 요구 사항에 맞게 수정을 하면 될 것이다.
|