struts2文件下载

来源:互联网 发布:在淘宝上洗照片安全吗 编辑:程序博客网 时间:2024/06/06 04:09

1.action中需要有一个InputStream 对象,并且该对象要有get()方法

2.在action的方法中给下载的文件定义一个名字,比如:xlsName = "统配报表.xls";

3.给inputstream对象赋值,即封装一个方法getExcel(),这个方法的返回值是inputstream类型 ,inputstream对象=getExcel();

4,在getExcel()方法中创建excel和行、列并对他们复制,具体操作如下:

a.创建一个excel  HSSFWorkbook workbook = new HSSFWorkbook();

b:创建一个sheet   HSSFSheet sheet = workbook.createSheet("统配订货明细");

c.设置sheet的列宽sheet.setDefaultColumnWidth(35);

d.    给这个Excel的cell创建一个style    HSSFCellStyle style = workbook.createCellStyle(); 并给这个style设置前景色,边框等,具体参考

http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFCellStyle.html,

e.给这个excel创建一个字体 HSSFFont font = workbook.createFont();并给字体设置大小,颜色等,并把这个字体设置给这个样式

f.创建row和cell  HSSFRow dg = sheet.createRow(0); HSSFCell cell0 = dg.createCell(0);并给cell设置样式、赋值

g.遍历从数据库查出来的数据,

h.创建输入流 OutputStream bos = new ByteArrayOutputStream();// 字节数组流

i.用输入流创建输出流ByteArrayInputStream bis = new ByteArrayInputStream(((ByteArrayOutputStream) bos).toByteArray()); return bis;


注意事项:

struts2配置文件中配置下载方法

<result name="downAllExcel" type="stream">
                <param name="contentType">application/vnd.ms-excel;charset=iso-8859-1</param>
                <param name="inputName">downAllExcel</param>
                <param name="contentDisposition">/attachment;filename="${xlsName}"</param>
 </result>

原创粉丝点击