struts2输出并下载excel文件
2013-12-13 16:28
218 查看
Action文件:
[c-sharp] view
plaincopy
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文件:
[xhtml] view
plaincopy
<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>
[c-sharp] view
plaincopy
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文件:
[xhtml] view
plaincopy
<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>
相关文章推荐
- struts2输出并下载excel文件
- Struts2 遍历输出WEB-INF文件目录,并提供下载功能
- struts2 word、excel文件的下载
- Java Struts2 POI创建Excel文件并实现文件下载
- 利用Struts2进行Excel文件的生成及下载功能实现。
- Java Struts2 POI创建Excel文件并实现文件下载
- struts2 文件流, 文件输出到浏览器 文件下载
- Struts2中,文件下载,XML输出等不需要返回页面的Action返回
- Java Struts2 POI创建Excel文件并实现文件下载
- jxl与Struts2 生成下载excel文件 使用Excel模板 (云少原创)
- Java Struts2 POI创建Excel文件并实现文件下载
- Asp.net输出Excel文件并且下载该文件以及某些细节问题解决
- 使用struts2和POI,生成并下载excel文件
- struts2文件下载,中文名称乱码
- struts2文件下载
- java中struts2实现文件上传下载功能实例解析
- 使用struts2实现下载功能遇到的文件中文问题解决经验分享
- struts2 文件上传与下载原理
- struts2下载中文名称的文件
- Struts2自学入门(十)——多文件上传及文件下载