使用struts2导出excel主要分两部分
1.配置一个输出流的action,如下配置了一个excel.action
<package name="excel" extends="struts-default">
<action name="excel" class="com.liqun.action.excel.ExcelAction">
<result name="excel" type="stream">
<param name="contentType">application/vnd.ms-excel</param>
<param name="inputName">excelStream</param>
<param name="contentDisposition">filename="export.xls"</param>
<param name="bufferSize">1024</param>
</result>
</action>
</package>
2.书写一个可以导出excel的类 ,如ExcelAction.java
package com.liqun.action.excel;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import com.liqun.action.BaseAction;
public class ExcelAction extends BaseAction {
InputStream is;
public String execute(){
Label label;
WritableWorkbook workbook;
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
workbook = Workbook.createWorkbook(os);
WritableSheet sheet = workbook.createSheet("Sheet1", 0);
label = new jxl.write.Label(0, 0, "标题");
sheet.addCell(label);
label = new jxl.write.Label(0,1, "数据");
sheet.addCell(label);
workbook.write();
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
is = new ByteArrayInputStream(os.toByteArray());
return "excel";
}
public InputStream getIs() {
return is;
}
public void setIs(InputStream is) {
this.is = is;
}
}
这样通过访问 excel.action(注意你配置的路经) 就可以导出excel ,具体excel表格的细节控制可以查询官方api