내장바구니 | 주문배송조회 | 내적립금
6만원 이상 무료배송
주문하시는
총상품금액의 합계가
6만원 이상일 경우
택배비가 무료입니다.
[JSP] 다운받기, 엑셀보기 이쁜 팁
작성자: 어라    작성일: 2009-07-07 09:49   조회: 162598   댓글: 0
<%@ page contentType="application/vnd.ms-excel;charset=EUC-KR" %><%@ 
page import="java.sql.*" %><%@ 
page import="java.util.*" %><%@ 
page import="java.io.*" %><% 
    String filename = java.net.URLEncoder.encode("테스트_list.xls","EUC-KR");
    //다운로드하고자 한다면
    response.setHeader("Content-Disposition", "attachment;filename="+filename+";");
    /*
     * 그냥 해당페이지에서 엑셀로 보여주고자 한다면 아래는 일단 주석처리
     * response.setHeader("Content-Disposition", "inline;filename="+filename+";");
     */
    response.setHeader("Content-Description", "JSP Generated Data"); 

    out.println("가입자명\t주민등록번호\t입사일");
    for(int k=0; k < 100;k++){
        out.println("가입자명"+k+"\t주민등록번호"+k+"\t입사일"+k);
    }
%>



--------------------------------------------------------------------------------


기존 소스는(다운로드, 엑셀로 보여주기 등) 이렇게 사용이 되었습니다. 
이때 주의 할점은 상단에서 엔터를 치면 치는 족족 결과 화면에서는 엔터가 먹는 다는 겁니다.
그래서 위의 소스처럼 다닥 다닥 붙여야만 했습니다.

그런데 요구 조건이 다음과 같습니다.
1. 결과값이 없다면 script로 데이터가 없습니다. 보여주고 history.back();
2. 결과값이 있다면 엑셀로 다운로드 해야한다.
3. 깔끔한 소스~~~~
4. 간단한 소스~~~~

동적으로 contentType이 변해야 하며 기존 소스는 건드리지 않고 
페이지에 위의 기능을 넣어야 합니다.



--------------------------------------------------------------------------------


<%@ page contentType="text/html;charset=EUC-KR" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<% 
    //한글은 이렇게
    String filename = java.net.URLEncoder.encode("테스트_list.xls","EUC-KR");
    // 위에 contentType을 동적으로 바꾸기 위해 response를 다 날려버린다.
    // 이렇게 하면 위에 불필요한 띄어쓰기 등도 초기화 된다. 
    // 그러니 소스를 더럽히지 않아도 된다.
    response.reset();
    response.setContentType("application/vnd.ms-excel;charset=EUC-KR");
    response.setHeader("Content-Disposition", "attachment;filename="+filename+";");
    response.setHeader("Content-Description", "JSP Generated Data"); 

    out.println("가입자명\t주민등록번호\t입사일");
    for(int k=0; k < 100;k++){
        out.println("가입자명"+k+"\t주민등록번호"+k+"\t입사일"+k);
    }
%>



--------------------------------------------------------------------------------


 

<%@ page contentType="text/html;charset=EUC-KR" %>
<% 
    String filename = java.net.URLEncoder.encode("test_list.txt","EUC-KR");
    response.reset();
    response.setContentType("application/octet-stream;charset=EUC-KR");
    response.setHeader("Content-Disposition", "attachment;filename="+filename+";");
    response.setHeader("Content-Description", "JSP Generated Data"); 

    out.println("가입자명\t주민등록번호\t입사일");
    for(int k=0; k < 100;k++){
        out.println("가입자명"+k+"\t주민등록번호"+k+"\t입사일"+k+"\n");
    }
%>

 * 관련 댓글 한말씀 부탁합니다.
  작성자:    비밀번호:   (비밀번호는 숫자 4자리이며 본인댓글 삭제시 필요합니다.)
이용약관 | 개인정보취급방침