[环境]:SSI(Struts2.0.14+Spring2.0+Ibatis2.3)
[功能]:把数据库中的数据整一下然后导出到Excel,客户端直接点导出按钮,下载一个Excel文件到本地.
[方案]:可以有两种方案,一种是在服务器端生成临时文件,告诉客户端下载地址,然后删除临时文件;另外就是生成文件流,直接从内存中
下载.这里采用的是从内存下载,Excel用jxl生成(poi也可以).
[过程]:1.jxl把从数据库中取得的数据整成一个Excel文件并生成输出流;
2.输出流转化为输入流;
3.配置struts.xml
[代码]:
Service.java
ServiceImpl.java
Action.java
struts.xml
说明:
首先把结果的类型用stream来表示。然后,这里准备下载的因为是一个excel文件,所以
1,参数contentType的地方指定为application/vnd.ms-excel,
2,并且指定以附件(attachment)下载的方式,而不是在浏览器中打开的方式,
3,在下载提示框中指定的下载文件名字为filename=${fileName}->Action中指定的文件名
4,最后参数inputName指定为inputStream,getInputStream->inputStream.