该部分内容是在《Struts2导出Excel步骤及问题汇总(一)》的前提下完成的,该部分内容可以参考百度经验Struts2导出Excel步骤及问题汇总(一) poi分页 或者 本博客中 Struts2导出Excel步骤及问题汇总(一) poi分页。
Action中处理,包含下载中文文件乱码、为空的问题。
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.Date;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import com.monkey.base.action.BaseAction;
import com.monkey.service.ProductCardService;
import com.monkey.util.DateUtils;
import com.monkey.vo.ProductCard;
import com.opensymphony.xwork2.ModelDriven;
public class ProductCardAction2 extends BaseAction implements
ModelDriven<ProductCard> {
private static final long serialVersionUID = 6658682414884709427L;
@Autowired
private ProductCardService productCardService;
private ProductCard pc;
private String fileName; // 下载文件名称
private InputStream excelFile; // 下载文件流
public ProductCard getModel() {
if (null == pc)
pc = new ProductCard();
return pc;
}
public String download() throws Exception {
HSSFWorkbook workbook = xxx(); // 这个为调用service层返回的HSSFWorkbook对象
ByteArrayOutputStream output = new ByteArrayOutputStream();
workbook.write(output);
byte[] ba = output.toByteArray();
excelFile = new ByteArrayInputStream(ba);