FrontEND/Jsp

jsp 엑셀 다운

mingmingIT 2017. 11. 30. 12:36
엑셀로 다운 로드 하는 기능을 구현하는 방법.

1. 첫머리의 contentType에서 excel로 다운 받을 수 있도록 해당 내용을 넣어주고
<%@ page language="java" contentType="application/vnd.ms-excel; charset=UTF-8"
    pageEncoding="UTF-8"%>


2. 헤더에서 두줄을 추가해 주면 해당 페이지가 Excel로 자동으로 다운 받도록 기능한다.
<%
response.setHeader("Content-Type", "application/vnd.ms-xls");
response.setHeader("Content-Disposition", "inline; filename=myfile.xls");
%>

[ 결과 ] : 해당 페이지로 들어갈 때, 화면에 출력될 데이터가 그대로 엑셀로 담겨져서 보여진다.

[ 필요한 점 ] : 화면에 들어가서 필요한 데이터를 따로 분류 혹은 검색하여 해당데이터만 엑셀로 다운받으려고 할 경우 추가의 작업이 필요하다.

[ 추가한 점 ]

1. 화면에 출력된 데이터를, '버튼'을 누를때 화면의 데이터가 엑셀로 다운 받아지도록 한다.

<input type = "button" value = "엑셀 다운로드" onclick="goExcel()"/>

<script>
function goExcel() {
document.excelData.method="POST";
document.excelData.action="excelDownData.do";
document.excelData.submit();
}
</script>

<form name = "excelData">
<input type = "text" name="table" id="table" value = "${searchOption.table}" />
</form>


2. Controller 에서 엑셀을 다운 받는 기능을 건네받고, 전달하도록 함.
( Controller에서 엑셀 다운로드 기능하는 부분을 추가 )
@RequestMapping( value="/excelDownData.do" , method=RequestMethod.POST )
public ModelAndView stockRequestedAssetData( @ModelAttribute( "command" ) StockBean command ) {
 
ModelAndView mav = new ModelAndView( "Excel을 다운하는 기능을 코딩한 jsp" );
List<StockRequestedAssetBean> list = stockDao.searchRequest( command );
System.out.println("stockRequestedAsset's list size : " + list.size());
mav.addObject( "stockRequestedAsset" , list );
 
return mav;
}


3. Excel 로 다운받는 jsp를 추가.
<%@ page language="java" contentType="application/vnd.ms-excel; charset=UTF-8"
    pageEncoding="UTF-8"%>

// 데이터 값을 넘겨 받기 위한 C 태그
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<%
response.setHeader("Content-Type", "application/vnd.ms-xls");
response.setHeader("Content-Disposition", "inline; filename=myfile.xls");
%>

<body>
<table>
  <tr>
   <th>테이블</th>
  </tr>
 
  <c:forEach var="var" items="${값을 불러올 데이터}">
  <tr>
   <td>${var.table}</td>
  </tr>
  </c:forEach>
</table>
</body>

**jsp 엑셀 다운

위와 같이 코딩했을 시, 필요한 데이터를 검색하는 페이지에서 '엑셀 다운로드' 버튼을 눌렀을 때 흐름을 타고 필요한 데이터가 출력된 테이블을 엑셀로 다운받아 저장할 수 있다.


'FrontEND > Jsp' 카테고리의 다른 글

jsp에서 resource 경로 세팅 방법  (1) 2019.05.16