struts2输出并下载excel文件

Action文件:

package com.credit.stats.model; import com.opensymphony.xwork2.ActionSupport; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.util.ArrayList; import java.util.List; /** * Created by IntelliJ IDEA. * User: 晃同 * Date: 2010-10-14 * Time: 15:31:38 * To change this template use File | Settings | File Templates. */ public class OutputExcelAction extends ActionSupport implements ServletRequestAware, ServletResponseAware{ protected HttpServletRequest request = null; protected HttpServletResponse response = null; public void setServletRequest(HttpServletRequest arg0) { this.request = arg0; } public void setServletResponse(HttpServletResponse arg0) { this.response = arg0; } //获取输出流 public InputStream getInputExcel() { return (InputStream)request.getAttribute("excelStream"); } @Override public String execute() throws Exception { List<String> list = new ArrayList<String>(); list.add("张三"); list.add("李四三"); if(list != null){ int rows=0; HSSFWorkbook wk = new HSSFWorkbook(); HSSFSheet sheet = wk.createSheet("FollowAgentStats"); HSSFRow row = sheet.createRow(rows++); int column=0; HSSFCell cell = row.createCell(column++,HSSFCell.CELL_TYPE_STRING); cell.setCellValue("序号"); cell = row.createCell(column++,HSSFCell.CELL_TYPE_STRING); cell.setCellValue("姓名"); for(String ls:list){ row = sheet.createRow(rows++); column=0; cell = row.createCell(column++,HSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(rows - 1); cell = row.createCell(column++,HSSFCell.CELL_TYPE_STRING); cell.setCellValue(ls); } try{ ByteArrayOutputStream out=new ByteArrayOutputStream(); wk.write(out); request.setAttribute("excelStream",new ByteArrayInputStream(out.toByteArray())); request.setAttribute("filename", "myexcel");//设置文件名 return SUCCESS; }catch(Throwable th){ th.printStackTrace(); System.out.println("无法输出Excel文件"); return ERROR; } }else{ System.out.println("统计数据不存在"); return ERROR; } } }

struts文件:

<action name="download" class="OutputExcelAction"> <result name="success" type="stream"> <param name="contentType">application/vnd.ms-excel</param> <param name="inputName">inputExcel</param> <param name="contentDisposition">attachment;filename="${#request['filename']}"</param> <param name="bufferSize">8192</param> </result> </action>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值