간단하게 excel 파일 만드는 법


난 struts 프레임워크에서 사용했지만 html의 contentType 속성 변경을

이용한 방법이라 다른곳에 적용하기에도 간편함


////////////////////////////////////////////


test_excel.jsp


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

<%@ taglib prefix="s" uri="/struts-tags"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<%

//파일 이름 설정부분

java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd");

String today = formatter.format(new java.util.Date());

String filename = new String("테스트_".getBytes("KSC5601"), "8859_1") + today;

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

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


%>

</head>

<body>

<table border='1'>  

    <tr>  

       <th>번호</th>

       <th>data1</th>

       <th>data2</th>

       <th>data3</th>

       <th>data4</th>

    </tr>

    <s:iterator value="testList">

<tr align='center' >

           <td>${ROW_NUM}</td>

           <td>${DATA_1}</td>

           <td>${DATA_2}</td>

           <td>${DATA_3}</td>

           <td>${DATA_4}</td>

</tr> 

   </s:iterator>

   </table>

</body>

</html>


////////////////////////위의 소스를 호출해주면 엑셀파일에  body안의 테이블형태로 데이터가

저장되는것을 확인 할 수 있습니다.


ex) 호출부분


testAction.java


public String testExcel() throws Exception {

try {

 //출력할 리스트 생성부분

((TestVo)vo).setTestList(((List<HashMap>)((TestDao)dao).excel(((TestVo)vo))));

} catch (Exception e) {

logger.error(" CLASS : " + this.getClass().getName()  +"===" + e);

return ERROR;

}

return SUCCESS;

}

/////////////////////////////////////////////////////////////

testDao.java


public List<HashMap> excel(Object obj) throws Exception {

// TODO Auto-generated method stub

return (List<HashMap>)getSqlMapClientTemplate.getSqlMapClient().queryForList("test.sql.test_excel",obj);

}


////////////////////////////////////////////////////////////

testVo.java


private List<HashMap> testList;


public List<HashMap> gettestList() {

return testList;

}


public void settestList(List<HashMap> testList) {

this.testList= testList;

}


//////////////////////////////////////////////////////////////////

test-struts.xml


//경로부분 생략


<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">


<struts>

<package name="test" namespace="~~~~~~~~~~" extends="struts-login-interceptors">

<action name="testExcel" method="testExcel" class="~~~~~~~~~~~">

<result name="success">/~~~~~~/test_excel.jsp</result>

</action>

</package>


</struts>


//////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////

이런식으로 호출하면 된다.


+ Recent posts