JSP로 엑셀다운로드 프로그램을 작성할 때 Apache POI 와 같은 컴포넌트를 사용한다.
최근엔 2007 포맷을 지원하는 POI 3.5 버전이 나오기도 하였다.
그런데 화면에 출력하는 것과 동일한 내용을 POI로 다시 작성하는 것은 매우 귀찮은 일이다.
간단하게 엑셀 다운로드 프로그램을 작성하는 법.
JSP 프로그램에 다음과 같이 Reponse Header 를 설정해주면 된다.
response.setHeader("Content-Disposition","attachment; filename=파일이름.xls");
물론 이렇게 작성된 파일은 엑셀파일 형식은 아니고 웹페이지 형식의 문서이다.
엑셀에서 웹페이지 형식의 문서를 열수 있기 때문에.. 테이블로 잘 작성된 HTML페이지는 엑셀에서도 예쁘게 잘 나온다.
<작성예>
<%@page contentType="text/html;charset=utf-8"%>
<%@page language="java" import="java.util.*"%>
<%
response.setHeader("Content-Disposition","attachment; filename=downloa.xls");
// TODO : 로직
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>계획서</title>
</head>
<body>
<table border=0>
<tr align=center>
<td><font size=4>계획서</font></td>
</tr>
<tr>
<td>
<table>
<tr align='center'>
<td>년월:</td>
<td style="mso-number-format:'\@'">2008.10</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table border=1>
<tr align='center'>
<td>종류</td>
<td>대상</td>
<td>기간</td>
</tr>
<%
for(int i = 0; i < vList.size(); ++i){
%>
<tr>
<td><%=// 값1 %></td>
<td><%=// 값2 %></td>
<td><%=// 값3 %></td>
</tr>
<%
}
%>
</table>
</td>
</tr>
</table>
</body>
</html>
댓글 없음:
댓글 쓰기