java excel视图、_WebWork中自定义result视图使用POI生成Excel

WebWork中除了默认支持的几中视图外还可以自己来定义需要的视图,如JFreeChart,Excel等

这里生成Excel用的是POI的API

WebWork中定义ResultType视图类型只需要继承Result接口

代码如下

package com.customer.resulttype;

import com.opensymphony.xwork.Result;

import com.opensymphony.xwork.ActionInvocation;

import com.opensymphony.webwork.ServletActionContext;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import javax.servlet.http.HttpServletResponse;

import java.io.OutputStream;

public class ExcelResult implements Result{

private HSSFWorkbook workbook;

private String filename;

private String contenttype;

public void execute(ActionInvocation invocation) throws Exception {

if(contenttype==null)

contenttype = "application/ms-excel";

if (workbook==null)

workbook = (HSSFWorkbook) invocation.getStack().findValue("workbook");

HttpServletResponse response = ServletActionContext.getResponse();

response.setContentType(contenttype);

response.setHeader("Content-Disposition","attachment;Filename="+filename+".xls");

OutputStream os = response.getOutputStream();

workbook.write(os);

os.flush();

os.close();

}

public void setWorkbook(HSSFWorkbook workbook) {

this.workbook = workbook;

}

public void setFilename(String filename) {

this.filename = filename;

}

public void setContenttype(String contenttype) {

this.contenttype = contenttype;

}

}

视图做完之后做如下配置运行测试

package com.customer.action;

import com.opensymphony.xwork.ActionContext;

import com.opensymphony.xwork.ActionSupport;

import com.opensymphony.webwork.ServletActionContext;

import com.dboperate.ResultGather;

import org.apache.poi.hssf.usermodel.*;

import org.apache.poi.hssf.util.HSSFColor;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.ByteArrayInputStream;

import java.util.List;

import java.util.Map;

public class ExportExcelAction extends ActionSupport {

private HSSFWorkbook workbook;

public String execute() throws Exception {

return SUCCESS;

}

public String product() throws Exception {

try {

workbook = new HSSFWorkbook();

HSSFSheet sheet = workbook.createSheet();

workbook.setSheetName(0, "厂商产品", (short) 1);

HSSFRow row = sheet.createRow((short) 0);

HSSFCell cell0 = row.createCell((short) 0);

HSSFCell cell1 = row.createCell((short) 1);

HSSFCell cell2 = row.createCell((short) 2);

HSSFCell cell3 = row.createCell((short) 3);

HSSFCell cell4 = row.createCell((short) 4);

HSSFCell cell5 = row.createCell((short) 5);

HSSFCell cell6 = row.createCell((short) 6);

HSSFCell cell7 = row.createCell((short) 7);

HSSFCell cell8 = row.createCell((short) 8);

HSSFCell cell9 = row.createCell((short) 9);

cell0.setEncoding(HSSFCell.ENCODING_UTF_16);//这里是设置编码保证中文正常显示

cell1.setEncoding(HSSFCell.ENCODING_UTF_16);

cell2.setEncoding(HSSFCell.ENCODING_UTF_16);

cell3.setEncoding(HSSFCell.ENCODING_UTF_16);

cell4.setEncoding(HSSFCell.ENCODING_UTF_16);

cell5.setEncoding(HSSFCell.ENCODING_UTF_16);

cell6.setEncoding(HSSFCell.ENCODING_UTF_16);

cell7.setEncoding(HSSFCell.ENCODING_UTF_16);

cell8.setEncoding(HSSFCell.ENCODING_UTF_16);

cell9.setEncoding(HSSFCell.ENCODING_UTF_16);

cell0.setCellValue("厂商名");

cell1.setCellValue("产品名");

cell2.setCellValue("重量");

cell3.setCellValue("星级");

cell4.setCellValue("parama");

cell5.setCellValue("paramb");

cell6.setCellValue("paramc");

cell7.setCellValue("paramd");

cell8.setCellValue("状态");

cell9.setCellValue("备注");

} catch (Exception e) {

}

return SUCCESS;

}

public HSSFWorkbook getWorkbook() {

return workbook;

}

}

Xwork.xml中配置加入

productparam>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值