读书人

2013-03-05 13:00 java 后台老板 Exce

发布时间: 2013-12-29 13:07:03 作者: rapoo

2013-03-05 13:00 java 后台 Excel 文件生成后转化为字节流

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();
??}

读书人网 >编程

热点推荐