개발하자/JAVA고급
poi 엑셀 다운로드 기능
i구야
2018. 4. 18. 14:05
@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();
}