일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ajax 배열
- eclipse 폰트
- taglib 만들기
- JSP Standard Tag Library (JSTL) Tutorial
- jquery_api #jquery #api
- 탭과 클릭 focus 이벤트 구분
- ajax 배열 파라미터
- 전화번호 형식 자동 변환
- 트리거 이벤트
- 허드슨 포트 변경
- css 말줄임
- 폴더만 남기고 파일만 삭제
- jquery_cheat_sheet #jquery_quick_api_reference
- 엑셀 UPDATE
- DIV 팝업 이외 영역 클릭 시 팝업 닫기
- i_tail
- 팝업 종료
- 뒤로가기 방지
- eclipse properties
- javascript 낙타
- eclipse 다국어
- 시퀀스 초기화 프로시져
- javascript Camel
- 스킵 네비게이션
- 여러줄 한줄로
- Spring Annotation
- jQuery 백스페이스
- 근무날짜 경력계산
- 화면보호기 실행 방지
- #오라클 데이터 복구
- Today
- Total
Hi~ Summers!!
JXL로 Excel파일 만들고 PC에 저장하기 본문
<%@ page language="java" contentType="text/html;charset=EUC-KR" %>
<%@ page import="java.util.*, java.io.*" %>
<%@ page import="jxl.*, jxl.write.*, jxl.format.*" %>
<%@ page import="kr.co.kt.adims.form.Top10Form" %>
<%
String filename = "excelConvert.xls";
WritableWorkbook workbook = Workbook.createWorkbook(new File("c:/"+filename));
WritableSheet sheet = workbook.createSheet("Sheet1", 0);
jxl.write.WritableCellFormat format= new WritableCellFormat();
jxl.write.WritableCellFormat format0= new WritableCellFormat();
format.setBackground(jxl.format.Colour.GRAY_25 );
format.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN );
format.setAlignment(jxl.format.Alignment.CENTRE);
format0.setBackground(jxl.format.Colour.WHITE );
format0.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN );
format0.setAlignment(jxl.format.Alignment.CENTRE);
sheet.setColumnView(0,8);
jxl.write.Label label = null;
jxl.write.Blank blank = null;
label = new jxl.write.Label(0,0,"순위",format);
sheet.addCell(label);
label = new jxl.write.Label(1,0,"본부",format);
sheet.addCell(label);
label = new jxl.write.Label(2,0,"서버팜",format);
sheet.addCell(label);
label = new jxl.write.Label(3,0,"DHCP서버",format);
sheet.addCell(label);
label = new jxl.write.Label(4,0,"지사",format);
sheet.addCell(label);
label = new jxl.write.Label(5,0,"지점",format);
sheet.addCell(label);
label = new jxl.write.Label(6,0,"L3명(DHCP)",format);
sheet.addCell(label);
label = new jxl.write.Label(7,0,"EquipAlias",format);
sheet.addCell(label);
label = new jxl.write.Label(8,0,"LocationCode",format);
sheet.addCell(label);
label = new jxl.write.Label(9,0,"Mac Address",format);
sheet.addCell(label);
label = new jxl.write.Label(10,0,"수집날짜",format);
sheet.addCell(label);
label = new jxl.write.Label(11,0,"패킷수",format);
sheet.addCell(label);
int cnt = 0;
ArrayList staList = null;
Top10Form staForm = new Top10Form();
staList = (ArrayList)request.getAttribute("topList");
cnt = staList.size();
for(int i=0; i<cnt; i++)
{
staForm = (Top10Form)staList.get(i);
label = new jxl.write.Label(0, i+1, staForm.getNo(), format0);
sheet.addCell(label);
label = new jxl.write.Label(1, i+1, staForm.getBonbu(), format0);
sheet.addCell(label);
label = new jxl.write.Label(2, i+1, staForm.getServerParm(), format0);
sheet.addCell(label);
label = new jxl.write.Label(3, i+1, staForm.getEquipAlias(), format0);
sheet.addCell(label);
label = new jxl.write.Label(4, i+1, staForm.getJisa(), format0);
sheet.addCell(label);
label = new jxl.write.Label(5, i+1, staForm.getJijum(), format0);
sheet.addCell(label);
label = new jxl.write.Label(6, i+1, staForm.getL3Name1(), format0);
sheet.addCell(label);
label = new jxl.write.Label(7, i+1, staForm.getL3Name2(), format0);
sheet.addCell(label);
label = new jxl.write.Label(8, i+1, staForm.getL3LocationCode(), format0);
sheet.addCell(label);
label = new jxl.write.Label(9, i+1, staForm.getName(), format0);
sheet.addCell(label);
label = new jxl.write.Label(10, i+1, staForm.getRegDate(), format0);
sheet.addCell(label);
label = new jxl.write.Label(11, i+1, String.valueOf(staForm.getCnt()), format0);
sheet.addCell(label);
}
workbook.write();
workbook.close();
%>
<%
//여기부터 화일 다운로드 창이 자동으로 뜨게 하기 위한 코딩(임시화일을 스트림으로 저장)
File file = new File ("c:/"+filename); //해당 경로의 파일 객체를 만든다.
byte[] bytestream = new byte[(int)file.length()]; //파일 스트림을 저장하기 위한 바이트 배열 생성.
FileInputStream filestream = new FileInputStream(file); //파일 객체를 스트림으로 불러온다.
int i = 0, j = 0; //파일 스트림을 바이트 배열에 넣는다.
while((i = filestream.read()) != -1) {
bytestream[j] = (byte)i;
j++;
}
filestream.close(); //FileInputStream을 닫아줘야 file이 삭제된다.
try{
boolean success = file.delete();//화일을 생성과 동시에 byte[]배열에 입력후 화일은 삭제
if(!success) System.out.println("<script>alert('not success')</script>");
} catch(IllegalArgumentException e){
System.err.println(e.getMessage());
}
// response.setContentType("application/x-msdownload;charset=EUC-KR"); //응답 헤더의 Content-Type을 세팅한다.
response.setHeader("Content-Disposition","attachment; filename="+filename); //Content-Disposition 헤더에 파일 이름 세팅.
OutputStream outStream = response.getOutputStream(); // 응답 스트림 객체를 생성한다.
outStream.write(bytestream); // 응답 스트림에 파일 바이트 배열을 쓴다.
outStream.close();
%>