为什么HSSFWorkbook.write不能在HttpServletResponse中工作
我使用下面的代码在输出stream中编写一个excel文件。 但是,当我在Excel中打开下载的文件,它有开放的问题。
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(); }
当然我把结果写在一个文件中,这是正确的。
我通过删除下面的代码来解决这个问题。
response.setContentLength(workbook.getBytes().length);