티스토리 뷰
# 자바 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 )은
다음과 같은 홈페이지에서 다운 받을 수 있다
파일 다운 받기 :
http://www.andykhan.com/jexcelapi/download.html
API 정보 :
http://www.andykhan.com/jexcelapi/index.html
우선 사이트에서 가장 최신 버젼의 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를 다운 받은 후 사용자 요구 사항에 맞게 수정을 하면 될 것이다
# spring에서 excel, pdf 파일 다운로드 관련 로직(Abstractjexcel 사용)
http://netframework.tistory.com/m/post/392
# setContentType 을 설정하는 이유.
http://blog.daum.net/_blog/BlogTypeView.do?blogid=0QPBp&articleno=243
'programming > java' 카테고리의 다른 글
keytool을 이용한 인증서 생성 (0) | 2016.06.24 |
---|---|
싱글톤 패턴 - intialization in demand holder (0) | 2014.07.03 |
File IO시 try-catch-finally 스타일 (0) | 2013.12.11 |
- Total
- Today
- Yesterday
- jQuery
- Headfirst
- EditPlus 3
- javascript select text
- intialization in demand holder
- XMLAGG
- javascript
- 오라클 실습
- 단통법
- HTML excel
- resize
- 지연 초기화
- XMLELEMENT
- javascript select jQuery
- 이채남
- Web Application Server
- select box
- 위약4
- remove override
- 전문가로 가는 지름길
- 웹개발
- jxl
- 비우기
- 싱글톤 패턴
- 정보통신위원회
- javascript select value
- application/xml
- 제약조건
- web sever
- jxl api
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |