2014-11-18 7 views
0

엑셀 다운로드를 위해 사용자에게 기능을 제공해야합니다. 여기봄 MVC : HSSFWorkbook.write (ServletOutputStream) 브라우저에 가비지 값을 출력합니다.

내 컨트롤러 코드 내가 쓰레기 값을 대신 엑셀에 브라우저에 인쇄되는 위의 코드/열린 팝업 저장 파일을 실행 한 후

@RequestMapping(value = "downloadFIReport.do", method = RequestMethod.GET) 
public void downloadFIReport(@RequestParam("recieptID") String recieptId,HttpServletResponse response) { 
    HSSFWorkbook wb = BillExcelCreator.createFIBillExcel(recieptId); 
    if(wb != null){ 
     //Writing file to outputstream 
     try 
     { 
       ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
       wb.write(bos); 
       response.setContentLength(bos.size()); 
       wb.write(response.getOutputStream()); 
      // response.flushBuffer(); 
     } 
     catch(IOException ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 

니펫입니까?

이유가 무엇입니까? 무엇이 해결책이 될 수 있습니까?

답변

3

파일을 다운로드 할 수 있도록 설정하지 않았습니다. 그 이유는 응답에 일부 쓰레기 값을 인쇄하고 있기 때문입니다.

다음 줄을 응답에 추가 한 후 확인하십시오.

response.setContentType("application/vnd.ms-excel") 
response.setHeader("Content-disposition", "attachment;filename=yourFileName.xls") 
+0

+1이 효과적입니다. –