poi生成文件转化为字节流
– 参考资料:http://xiaowei-qi-epro-com-cn.iteye.com/blog/2030671
问题
使用poi导出xls文件,使用HSSFWorkbook.getBytes()获取字节流,输出到浏览器,下载后xls文件无法打开。
解决
//使用HSSFWorkbook.write()输出到浏览器
response.setHeader(
"content-disposition",
"attachment;filename=xxx.xls", "UTF-8"));
HSSFWorkbook xls = new HSSFWorkbook();
...
xls.write(response.getOutputStream());
//以字节流输出
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
workBook.write(os);
ByteArray bytes = os.toByteArray();
response.setContentType("application/msexcel;charset=utf-8");
response.setHeader("Content-disposition", "attachment;filename=xxx.xls");
response.getOutputStream().write(bytes.getRawBytes());
response.getOutputStream().flush();
response.getOutputStream().close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}