java excel 使用 poi组件, HSSFWorkbook workBook = new HSSFWorkbook();
对于workBook生成字节流,很容易发现有个workBook .getBytes(),但是,是不可用的,下载以后打不开,
如果下载,正确的写法为
workBook.write(response.getOutputStream());
如果转化为字节流:
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
workBook.write(os);
ByteArray bytes = os.toByteArray();
String fileName = "xxx.xls";
runData.getResponse().reset();
runData.getResponse().setContentType("application/msexcel;charset=utf-8");
runData.getResponse().setHeader("Content-disposition", "attachment;filename= "+ fileName);
runData.getResponse().getOutputStream().write(bytes.getRawBytes());
runData.getResponse().getOutputStream().flush();
runData.getResponse().getOutputStream().close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dwr的写法
:ByteArrayOutputStream os = new ByteArrayOutputStream();
try
{
hssfWorkbook.write(os);
return new FileTransfer(new String("XXXX.xls".getBytes(),"iso8859-1"), "application/ms-excel", os.toByteArray());
}
catch (IOException e)
{
e.printStackTrace();
}