-
엑셀 생성 + 저장위치 설정 다운로드(알집+개별저장)Web (Spring ) 2016. 11. 23. 19:17
개요
개별 파일 알집 속에 저장
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148/*** 엑셀 다운로드* @param adminBuildEnergyVo* @return* @throws Throwable*/@RequestMapping(value="/admin/authenticate/buildEnergy/excelCreate.do")@ResponseBodypublic void adminBuildEenrgyExcel(HttpServletRequest request, HttpServletResponse response) throws Throwable{try{response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();AdminBuildEnergyVo adminBuildEnergyVo = new AdminBuildEnergyVo();String rdmStr = CommonUtils.getRandomString();Calendar todayCal = Calendar.getInstance();SimpleDateFormat sdf = new SimpleDateFormat("yyyMd");int today = Integer.parseInt(sdf.format(todayCal.getTime()));String homedir = ""+today+"/"; //엑셀 생성// Workbook 생성// Workbook xlsWb = new HSSFWorkbook(); // Excel 2007 이전 버전String[] adminbuildenergynos = request.getParameterValues("adminbuildenergyno");System.out.println("length : "+adminbuildenergynos.length);/*엑셀 전체저장할 시에*/for(int i=0; i<adminbuildenergynos.length; i++){adminBuildEnergyVo.setAdminbuildenergyno(Integer.parseInt(adminbuildenergynos[i]));System.out.println("length:"+adminbuildenergynos.length); //파라미터 벨류 lengthSystem.out.println("values"+adminBuildEnergyVo.getAdminbuildenergyno());adminBuildEnergyVo = adminBuildEnergyService.getAdminBuildEnergy(adminBuildEnergyVo); //서비스 다시 주입Workbook xlsxWb = new XSSFWorkbook(); // Excel 2007 이상// *** Sheet-------------------------------------------------// Sheet 생성Sheet sheet = xlsxWb.createSheet(""); //시트이름// 컬럼 너비 설정sheet.setColumnWidth(0, 3000);sheet.setColumnWidth(1, 3000);// ----------------------------------------------------------// *** Style--------------------------------------------------// Cell 스타일 생성CellStyle cellStyle = xlsxWb.createCellStyle();// 줄 바꿈cellStyle.setWrapText(true);// Cell 색깔, 무늬 채우기cellStyle.setFillForegroundColor(HSSFColor.LIME.index);cellStyle.setFillPattern(CellStyle.ALIGN_CENTER);Row row = null;Cell cell = null;//----------------------------------------------------------// 첫 번째 줄row = sheet.createRow(0);// 첫 번째 줄에 Cell 설정하기-------------cell = row.createCell(0);cell.setCellValue("인증번호");cell.setCellStyle(cellStyle); // 셀 스타일 적용cell = row.createCell(1);cell.setCellValue("용도");cell.setCellStyle(cellStyle); // 셀 스타일 적용//---------------------------------// 두 번째 줄row = sheet.createRow(1);// 두 번째 줄에 Cell 설정하기-------------cell = row.createCell(0);cell.setCellValue(adminBuildEnergyVo.getCertificationno());cell = row.createCell(1);cell.setCellValue(adminBuildEnergyVo.getUsage());//---------------------------------// excel 파일 저장try {File file = new File(homedir+rdmStr+"/");if(file.exists() == false){file.mkdirs();}File xlsFile = new File(homedir+rdmStr+"/"+.xls");FileOutputStream fileOut = new FileOutputStream(xlsFile);xlsxWb.write(fileOut);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}// out.println(jsonArray);String zipName = homedir+rdmStr+".zip";Zip.compress(homedir+rdmStr+"/", zipName);out.println(zipName);}catch(Exception e){System.err.println(e.toString());}// return "y";}@RequestMapping(value="/admin/authenticate/buildEnergy/excelDownLoad.do")// @ResponseBodypublic void adminBuildEenrgyExcel2(HttpServletRequest request, HttpServletResponse response){try{// String root = "D:/eGovFrameDev-3.5.1-32bit/workspace/greencity/src/main/webapp/";String root = "";// String rootPath = root + "/";// byte fileByte[] = FileUtils.readFileToByteArray(new File("D:/eGovFrameDev-3.5.1-32bit/workspace/test2/src/main/webapp"+saveFileName));System.out.println("path: "+request.getParameter("path"));byte fileByte[] = FileUtils.readFileToByteArray(new File(request.getParameter("path")));response.setContentType("application/octet-stream");response.setContentLength(fileByte.length);response.setHeader("Content-Disposition", "attachment; fileName=\"" + URLEncoder.encode(request.getParameter("path").substring(request.getParameter("path").lastIndexOf("/")),"UTF-8").replace("+", "%20")+"\";");response.setHeader("Content-Transfer-Encoding", "binary");response.getOutputStream().write(fileByte);response.getOutputStream().flush();response.getOutputStream().close();}catch(Exception e){System.out.println(e.toString());}}cs create 후에 download ajax로 바로다운로드
ajax
12345678910111213141516171819202122function fn_execlView(no) {$(".adminbuildenergyno").attr("name", "adminbuildenergyno"); //name값 삽입$.ajax({url : "/admin/authenticate/buildEnergy/excelCreate.do",type : "POST",data : $("form[name=frm]").serialize(),dataType : "text",success : function(response) {$(".adminbuildenergyno").attr("name", ""); //name 삭제location.href = "/admin/authenticate/buildEnergy/excelDownLoad.do?path="+response;},error : function(request, status, error) {alert("서버 통신에 실패하였습니다.");}});}cs input button
1<input type="button" class="table-btn-3" onclick="fn_execlView('${adminBuildEnergyList[0].adminbuildenergyno}');" value="엑셀저장" style="width: 100px; height: 30px"><br/><br/><br/>cs for문 안에 hidden
123<c:forEach items="${adminBuildEnergyList}" var="data" varStatus="status"><input type="hidden" class="adminbuildenergyno" id="adminbuildenergyno" value="${data.adminbuildenergyno }"></c:forEach>cs 'Web (Spring )' 카테고리의 다른 글
현재월 시작일부터 마지막일 쿼리 조회 (0) 2016.12.05 jQuery ui theme (0) 2016.11.29 엑셀 생성 + 저장위치 설정 다운로드(리스트) (0) 2016.11.23 jQuery 동적 tr 생성 및 삭제 (0) 2016.11.18 ajax 파일 전송 (0) 2016.11.17