<div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">jsp에서 DB에 있는 데이터를 poi 통해 엑셀파일로 저장시키려 합니다.</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">아웃풋스트림을 FileOuputStream으로 잡고, 임의의 경로로 하드코딩하여 wb.write하면</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">엑셀파일이 정상적으로 생성됩니다.</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">하지만 이건 서버컴퓨터에만 다운로드가 되니까, 클라이언트가 다운받을수 있게 하려합니다.</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">구글링을 통해 여러 예제들 짬뽕해가면서 하고있는데,</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">response.getOutputStream()으로 스트림 잡아다가 wb.write하니</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><b style="margin:0px;padding:0px;">엑셀 파일이 아닌, 해당 소스가 있는 JSP파일이 다운로드 됩니다.</b></div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">JSP 파일 말고, 의도한 대로 클라이언트가 엑셀파일을 다운로드 할 수 있게 하려면 어떻게 하나요?</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">아래는 소스파일입니다.</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">여러 예제를 보면서 이것저것 시도하다보니 </div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;">잘못된 부분이 더 있다면 얘기해주세요.</div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><br style="margin:0px;padding:0px;"></div><blockquote style="margin:0px 0px 0px 40px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;border:none;"> <div style="margin:0px;padding:0px;">OutputStream fileOut = null;</div></blockquote> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span style="margin:0px;padding:0px;white-space:pre;"></span></div><blockquote style="margin:0px 0px 0px 40px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;border:none;"> <div style="margin:0px;padding:0px;">HSSFWorkbook wb = null;</div></blockquote> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span style="margin:0px;padding:0px;white-space:pre;"></span></div><blockquote style="margin:0px 0px 0px 40px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;border:none;"> <div style="margin:0px;padding:0px;">HSSFSheet sheet = null;</div></blockquote> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span style="margin:0px;padding:0px;white-space:pre;"></span></div><blockquote style="margin:0px 0px 0px 40px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;border:none;"> <div style="margin:0px;padding:0px;">HSSFRow row = null;</div> <div style="margin:0px;padding:0px;"><br style="margin:0px;padding:0px;"></div></blockquote> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><span style="margin:0px;padding:0px;white-space:pre;"></span></div> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><blockquote style="margin:0px 0px 0px 40px;padding:0px;border:none;"> <div style="margin:0px;padding:0px;">~DB 데이터 처리~</div> <div style="margin:0px;padding:0px;"><br style="margin:0px;padding:0px;"></div> <div style="margin:0px;padding:0px;"> <div style="margin:0px;padding:0px;">String sFileName = cid + ".xls";</div> <div style="margin:0px;padding:0px;">String fileName = new String(sFileName.getBytes("EUC-KR"), "8859_1");</div> <div style="margin:0px;padding:0px;">String strClient = request.getHeader("User-Agent");</div> <div style="margin:0px;padding:0px;">if (strClient.indexOf("MSIE 5.5") > -1) {</div></div></blockquote></div><blockquote style="margin:0px 0px 0px 40px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;border:none;"> <div style="margin:0px;padding:0px;"><blockquote style="margin:0px 0px 0px 40px;padding:0px;border:none;"> <div style="margin:0px;padding:0px;"> <div style="margin:0px;padding:0px;">response.setHeader("Content-Disposition", "filename="+ fileName + ";");</div></div></blockquote></div></blockquote> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><blockquote style="margin:0px 0px 0px 40px;padding:0px;border:none;"> <div style="margin:0px;padding:0px;"> <div style="margin:0px;padding:0px;"><span style="margin:0px;padding:0px;white-space:pre;"></span></div> <div style="margin:0px;padding:0px;">} else {</div></div></blockquote></div><blockquote style="margin:0px 0px 0px 40px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;border:none;"> <div style="margin:0px;padding:0px;"><blockquote style="margin:0px 0px 0px 40px;padding:0px;border:none;"> <div style="margin:0px;padding:0px;"> <div style="margin:0px;padding:0px;">response.setHeader("Content-Disposition","attachment; filename=" + fileName + ";");</div></div></blockquote></div></blockquote><blockquote style="margin:0px 0px 0px 40px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;border:none;"> <div style="margin:0px;padding:0px;"><blockquote style="margin:0px 0px 0px 40px;padding:0px;border:none;"> <div style="margin:0px;padding:0px;"> <div style="margin:0px;padding:0px;">response.setHeader("Content-Description","JSP Generated Data");</div></div></blockquote></div></blockquote><blockquote style="margin:0px 0px 0px 40px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;border:none;"> <div style="margin:0px;padding:0px;"><blockquote style="margin:0px 0px 0px 40px;padding:0px;border:none;"> <div style="margin:0px;padding:0px;"> <div style="margin:0px;padding:0px;">response.setContentType("application/octet-stream");</div></div></blockquote></div></blockquote> <div style="margin:0px;padding:0px;color:#404040;font-family:sans-serif;font-size:13px;"><blockquote style="margin:0px 0px 0px 40px;padding:0px;border:none;"> <div style="margin:0px;padding:0px;"> <div style="margin:0px;padding:0px;"><span style="margin:0px;padding:0px;white-space:pre;"></span></div> <div style="margin:0px;padding:0px;"><span style="margin:0px;padding:0px;white-space:pre;"></span></div> <div style="margin:0px;padding:0px;"><span style="margin:0px;padding:0px;white-space:pre;"></span></div> <div style="margin:0px;padding:0px;">}</div> <div style="margin:0px;padding:0px;">out.clear();</div> <div style="margin:0px;padding:0px;">out = pageContext.pushBody();</div> <div style="margin:0px;padding:0px;">response.reset();</div> <div style="margin:0px;padding:0px;"><br style="margin:0px;padding:0px;"></div> <div style="margin:0px;padding:0px;">fileOut = response.getOutputStream();</div> <div style="margin:0px;padding:0px;">wb.write(fileOut);</div></div></blockquote></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.