自己下载Excel成功了才写的
1:struts2配置文件参数说明
<action name="flightLoadAction!*" class="flightLoadAction" method="{1}">
<result name="excel" type="stream">
<param name="contentType">application/vnd.ms-excel</param>
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<param name="bufferSize">2048</param>
<param name="inputName">excelStream</param>
</result>
</action>
contentType:声明为excel下载
contentDisposition:attachment 表示弹出框附件下载; filename表示要下载的文件名; ${fileName} el表达式,表示获取Action的fileName属性作为下载文件名;
bufferSize:缓冲区大小
inputName:excelStream Action 的成员变量,由excel生成的流
2:代码:
public String exportExcel(){
HSSFWorkbook workbook=flightLoadService.buildWorkBook();
ByteArrayOutputStream output = new ByteArrayOutputStream();
try {
workbook.write(output);
byte[] ba = output.toByteArray();
excelStream = new ByteArrayInputStream(ba);
output.flush();
output.close();
} catch (IOException e) {
e.printStackTrace();
}
return "excel";
}
3:注意
struts2下载excel时,使用ajax下载时 不会弹出框提示下载,需自己到响应正文里去 另存为
解决办法:可以做一个表单,提交表单是下载Excel