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