Home » excel » java – Apache POI output problem

java – Apache POI output problem

Posted by: admin March 9, 2020 Leave a comment

Questions:

I have a problem with Apache POI. I attempt to return a file after I have processed the relevant data. When I go to return the file to the browser(Both IE8/9, firefox), the browser returns a load of garbage characters. This only happens when the Excel file is large and the process has been running for say 2 minutes plus. Otherwise it returns a file which I can then open in Excel.

Any help is appreciated, thanks.

response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + ".xls\"");
OutputStream out = null;

try {
  out = new BufferedOutputStream(response.getOutputStream());
  wb.write(out);
  out.flush();     
} catch (IOException ex) {
  ex.printStackTrace();
}
How to&Answers:

I think you should specify the content length as well. This is the line you should insert:

response.setContentLength(/* length of the byte[] */);

I suggest you using Apache Commons IOUtils class for dealing with byte arrays and streams.