2012-08-25 3 views
1

아래 코드를 사용하여 출력 스트림에 Excel 파일을 작성했습니다. 그러나 다운로드 한 파일을 Excel에서 열면 열 때 문제가 발생합니다.HSSFWorkbook.write가 HttpServletResponse에서 작동하지 않는 이유

HSSFWorkbook workbook = getWorkBook(); 
    FacesContext context = FacesContext.getCurrentInstance(); 
    HttpServletResponse response = (HttpServletResponse) FacesContext 
      .getCurrentInstance().getExternalContext().getResponse(); 
    response.setHeader("Content-Disposition", "attachment;filename=someName.xls"); 
    response.setContentLength(workbook.getBytes().length); 
    response.setContentType("application/vnd.ms-excel"); 
    try { 
     workbook.write(response.getOutputStream()); 
     response.getOutputStream().close(); 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 

물론 결과를 파일에 쓰고 올바르게되었습니다.

답변

1

아래 코드를 제거하여이 문제를 해결합니다.

response.setContentLength(workbook.getBytes().length); 
+1

가능한 경우이 게시물을 답으로 표시 (http://meta.stackexchange.com/a/5235/182862)해야합니다. –

관련 문제