상세 컨텐츠

본문 제목

Java Excel 다운로드 구현

프로그래밍/JAVA

by 라제폰 2011. 11. 3. 20:44

본문


1. Excel에 데이터를 다운로드 할 List를 JSP에 넘김.

  //mnv 는 ModelAndView 객체다.
  mnv.addObject("returnList", returnList);

2. JSP에서 해당 List 를 request 객체에서 받음. 

  request.getAttribute("returnList"); 쯤 되겠다.

3. JSP에 아래 내용을 추가.

<%@ page language="java" contentType="application/vns.ms-excel; charset=euc-kr"   pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.util.List"%>

<%
response.reset();
 response.setHeader("Content-Disposition", "attachment;filename="+new Date().getTime()+".xls;");
 response.setHeader("Content-Description", "JSP Generated Data");
 
 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
%>
<html>
<head>
<meta http-equiv="Content-type" content="application/x-msexcel;charset=euc-kr">
</head>
<body>
<h3>회선가입자 리스트</h3>
<table>

 <colgroup> <!-- colgroup 에서 미리 각 Cell의 가로 길이를 지정한다. -->
 <col width="50" /><col width="80" /><col width="200" /><col width="100" /><col width="100" /><col width="100" /><col width="100" /><col width="150" /><col width="100" /><col width="200" /><col width="50" />
 </colgroup>
 <thead>
 <tr>
<!-- EtcUtils.mKscToAsc() 메소드는 한글 인코딩 문제를 해결하기 위해 인코딩해주는 메소드다.
       인코딩을 안할 경우 당연히.. 한글은 깨진다. -->
  <th><%=EtcUtils.mKscToAsc("번호")%></th>
  <th><%=EtcUtils.mKscToAsc("통신사")%></th>
  <th><%=EtcUtils.mKscToAsc("Client")%></th>
  <th><%=EtcUtils.mKscToAsc("부서")%></th>
  <th><%=EtcUtils.mKscToAsc("등록일")%></th>
  <th><%=EtcUtils.mKscToAsc("가입일")%></th>
  <th><%=EtcUtils.mKscToAsc("해지일")%></th>
  <th><%=EtcUtils.mKscToAsc("신청자")%></th>
  <th><%=EtcUtils.mKscToAsc("회선")%></th>
  <th><%=EtcUtils.mKscToAsc("상품명")%></th>
  <th><%=EtcUtils.mKscToAsc("상태")%></th>
 </tr>
 </thead>
 <tbody>

<%
 for(int i = 0; i < returnList.size(); i++){
  
  String status = "";
  
  if(returnList.get(i).getServUseFlag().equals("0")){
   status = "신청";
  }else if(returnList.get(i).getServUseFlag().equals("1")){
   status = "가입";
  }else if(returnList.get(i).getServUseFlag().equals("2")){
   status = "해지";
  }else if(returnList.get(i).getServUseFlag().equals("3")){
   status = "재가입";
  }
  
%>
 
  <tr>
  <td align='center'><%=(returnList.size() -  i )%></td>
  <td align='center'><%=EtcUtils.mKscToAsc(returnList.get(i).getTelecom())%></td>
  <td align='center'><%=EtcUtils.mKscToAsc(returnList.get(i).getCust().getCoNameKr())%></td>
  <td align='center'><%=EtcUtils.mKscToAsc(returnList.get(i).getPart().getPartName())%></td>
  <td align='center'><%=sdf.format(returnList.get(i).getRegDate())%></td>
  <%if(returnList.get(i).getJoinDate() == null){%>
  <td align='center'>&nbsp;</td>
  <%}else{%>
  <td align='center'><%=sdf.format(returnList.get(i).getJoinDate())%></td>
  <%}%>
  <%if(returnList.get(i).getDelDate() == null){%>
  <td align='center'>&nbsp;</td>
  <%}else{%>
  <td align='center'><%=sdf.format(returnList.get(i).getDelDate())%></td>
  <%}%>
  <td align='center'><%=EtcUtils.mKscToAsc(returnList.get(i).getUserName())%></td>
  <td align='center' style='mso-number-format:\\@;'><%=returnList.get(i).getHpno()%></td>
  <td align='center'><%=EtcUtils.mKscToAsc(returnList.get(i).getCode().getServiceName())%></td>
  <td align='center'><%=EtcUtils.mKscToAsc(status)%></td>
  
  </tr>
  
  
<%}%>

 </tbody>

 </table>

</BODY>
</HTML>


관련글 더보기