jsp 페이지를 excel 로 다운 (워드, 한글)

개발/코딩 2018. 7. 23. 15:49


<!-- 엑셀 -->

<%@ page language="java" contentType="application/vnd.ms-excel;charset=UTF-8" pageEncoding="UTF-8"%>

 

<!-- 워드 -->

<%-- <%@ page language="java" contentType="application/vnd.word;charset=UTF-8" pageEncoding="UTF-8"%> --%>

 

<!-- 한글 -->

<%-- <%@ page language="java" contentType="application/hwp;charset=UTF-8" pageEncoding="UTF-8"%> --%>

 

<%

 

//******************************MS excel******************************

    // MS excel로 다운로드/실행, filename에 저장될 파일명을 적어준다.

    response.setHeader("Content-Disposition","attachment;filename=member.xls");

    response.setHeader("Content-Description", "JSP Generated Data");

    

    // ↓ 이걸 풀어주면 열기/저장 선택창이 뜨는 게 아니라 그냥 바로 저장된다.

//  response.setContentType("application/vnd.ms-excel");

//*********************************************************************

 

 

//******************************MS word********************************

    // MS word로 다운로드/실행, filename에 저장될 파일명을 적어준다.

//  response.setHeader("Content-Disposition", "attachment;filename=member.doc");

//  response.setHeader("Content-Description", "JSP Generated Data");

    

    // ↓ 이걸 풀어주면 열기/저장 선택창이 뜨는 게 아니라 그냥 바로 저장된다.

//  response.setContentType("application/vnd.ms-word");

//*********************************************************************

    

    

//******************************한글(hwp)********************************

    // 한글(hwp)로 다운로드/실행, filename에 저장될 파일명을 적어준다.

//  response.setHeader("Content-Disposition", "attachment;filename=member.hwp");

//  response.setHeader("Content-Description", "JSP Generated Data");

    

    // ↓ 이걸 풀어주면 열기/저장 선택창이 뜨는 게 아니라 그냥 바로 저장된다.

//  response.setContentType("application/hwp");

//*********************************************************************

 

%>

 

위 소스를 jsp 상단에 적어준다.

 

 

워드나 한글로 다운로드/실행하고 싶다면 엑셀에 맞춰져 있던 코드들을 주석으로 묶고, 기존에 주석으로 묶여있는 코드들을 풀어주면 된다.

 


<h3>회원 목록</h3>

 

    <table border="1">

        <thead>

            <tr>

                <th>ID</th>

                <th>이름</th>

                <th>전화번호</th>

            </tr>

        </thead>

        

        <tbody>

            <tr>

                <td>hong</td>

                <td>홍길동</td>

                <td style='mso-number-format: "@";'>01012341234</td>

            </tr>

            <tr>

                <td>lee</td>

                <td>이순신</td>

                <td style='mso-number-format: "@";'>01056785678</td>

            </tr>

            <tr>

                <td>test</td>

                <td>테스트</td>

                <td style='mso-number-format: "@";'>0109876543</td>

            </tr>

        </tbody>

    </table>

 

 

body 영역에는 엑셀로 다운로드/열기 할 내용을 적어준다.

 

이런식으로 DB연동해서 엑셀 파일을 만들 수 있다.

 

처음 실행할때는 파일을 열겠냐는 경고 메시지가 뜨는데,

편집을 하고 싶거나 저장을 하고 싶을때는 다른이름으로 저장하기를 누르고 파일 형식을 excel 통합문서로 저장하면 된다.

 

style='mso-number-format: "@";' 는 엑셀 다운 받으면 전화번호의 경우 앞 0 이 사라지는데 이것을 방지 하기 위해서 이다.