본문 바로가기

개발하자/JAVA고급

poi 엑셀 다운로드 기능

@RequestMapping(value = "/selectMyUnionMbListExcel.do", method = RequestMethod.POST)
public void selectMyUnionMbListExcel(HttpServletRequest request, HttpServletResponse response) throws SQLException, IOException {

EduUnionMbVo vo = new EduUnionMbVo();
String deptCode = request.getParameter("deptCode") != null ? request.getParameter("deptCode") : "";
vo.setDeptCode(deptCode);
List<EduUnionMbVo> unionMblist = eduUnionMbService.selectMyUnionMbListExcel(vo); //엑셀다운데이터목록

String fileName = "exceldown"; //파일명설정

//엑셀다운로드시켜줌
response.setContentType("Application/Msexcel");
response.setHeader("Content-Disposition", "ATTachment; Filename=" + fileName + ".xls");

//1차로 workbook을 생성
HSSFWorkbook workbook = new HSSFWorkbook();

//2차는 sheet생성
HSSFSheet sheet = workbook.createSheet("시트명"); //시트명설정

//엑셀의 행
HSSFRow row = null;

//엑셀의 셀
HSSFCell cell = null;

String titleArr[] = {"성명", "생년월일", "모바일", "자격증", "차량번호", "지역", "소속", "교육주기", "메모"}; //엑셀 컬럼명 설정

EduUnionMbVo fdata=null;
row = sheet.createRow(0); //첫번째행을 생성한다.

for (int titleNo = 0; titleNo < titleArr.length; titleNo++) { //생성한 행에 타이틀을 입력한다.
cell = row.createCell(titleNo);
cell.setCellValue(titleArr[titleNo]);
}

for(int i=0; i<unionMblist.size(); i++){ //데이터목록을 셀에 입력한다.

row = sheet.createRow((short)i+1);

fdata = unionMblist.get(i);

for(int j=0; j<10; j++){

cell = row.createCell(j);

if(j==0){
String cate1 = fdata.getUnionMbNm();
cell.setCellValue(cate1);

}else if(j==1){
String cate2 = fdata.getUnionMbBirth();
cell.setCellValue(cate2);

}else if(j==2){
String cate3 = fdata.getUnionMbMobile();
cell.setCellValue(cate3);

}else if(j==3){
String cate4 = fdata.getLicenseNo();
cell.setCellValue(cate4);

}else if(j==4){
String cate5 = fdata.getUnionMbCarNo();
cell.setCellValue(cate5);

}else if(j==5){
String cate6 = fdata.getUnionMbArea();
cell.setCellValue(cate6);

}else if(j==6){
String cate7 = fdata.getUnionMbComanyNm();
cell.setCellValue(cate7);

}else if(j==7){
String cate8 = fdata.getEduTerms();
cell.setCellValue(cate8);

}else if(j==8){
String cate9 = fdata.getEduUnionMbDesc();
cell.setCellValue(cate9);

}

}

}
OutputStream fileOut = response.getOutputStream();

//다운받은 파일에 데이터를 쓴다
workbook.write(fileOut);
//필수로 닫아주어야함
fileOut.close();
}