Struts实时生成Excel文件下载

Struts实时生成Excel文件下载(转)

 

我做的项目原来是先在服务器上生成一个excel文件,然后用jspsmartupload下载的,可是由于用jspsmartupload下载的excel文件由于编码问题会有损坏,而且服务器的压力也太大,所以改为在Action中生成excel文件,然后下载,方便多了。由于项目的原因,excel文件是实时生成的,对于jxl的使用,大家可以参考jxl相关的文章。
有什么问题可以和我联系。
MSN:whw_dream(AT)hotmail.com
代码如下:
test.jsp

 


 

1 <% @ taglib uri = " /WEB-INF/struts-html.tld "  prefix = " html "   %>
2 < html:html >
3 < html:button property = " button "  onclick = " printAll() " >
4 DownLoad 
5 </ html:button >
6 </ html:html >
7 < script language = 'javascript' >
8 function  printAll() { location.href="<%=request.getContextPath()%>/download.do"; }
9 </ script >


 

 

DownloadAction.java

 

 

 1 import  org.apache.struts.action. * ;
 2 import  javax.servlet.http. * ;
 3 import  java.io.OutputStream;
 4 import  test.whw.upload.ExcelBean;
 5 /** */ /**
 6 * <p>Title:DownloadAction </p>
 7 * <p>Description: QRRSMMS </p>
 8 * <p>Copyright: Copyright (c) 2004 jiahansoft</p>
 9 * <p>Company: jiahansoft</p>
10 * @author wanghw
11 * @version 1.0
12 */

13
14 public   class  DownloadAction  extends  Action  {
15  public ActionForward execute(ActionMapping mapping,
16                               ActionForm form,
17                               HttpServletRequest request,
18                               HttpServletResponse response)
19      throws Exception {
20    try{
21      String fname = "test";//Excel文件名
22      OutputStream os = response.getOutputStream();//取得输出流
23      response.reset();//清空输出流
24      response.setHeader("Content-disposition""attachment; filename=" + fname + ".xls");//设定输出文件头
25      response.setContentType("application/msexcel");//定义输出类型
26      ExcelBean eb = new ExcelBean();
27      eb.expordExcel(os);//调用生成excel文件bean
28    }
catch(Exception e){
29      System.out.println(e);
30    }

31
32    return mapping.findForward("display");
33  }

34}

35


 

 

ExcelBean.java

 

 

 1 package  test.whw.upload;
 2 import  java.io. * ;
 3 import  jxl. * ;
 4 import  jxl.write. * ;
 5 import  jxl.format. * ;
 6 import  java.util. * ;
 7 import  java.awt.Color;
 8
 9 public   class  ExcelBean  {
10  public ExcelBean(){}
11  public String expordExcel(OutputStream os)throws Exception{
12    jxl.write.WritableWorkbook wbook = Workbook.createWorkbook(os); //建立excel文件
13    String tmptitle = "测试文件"//标题
14    jxl.write.WritableSheet wsheet = wbook.createSheet("第一页"0); //sheet名称
15    //设置excel标题
16    jxl.write.WritableFont wfont = new jxl.write.WritableFont(
17        WritableFont.ARIAL, 16,
18        WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE,
19        jxl.format.Colour.BLACK);
20    jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(
21        wfont);
22    jxl.write.Label wlabel1;
23    wlabel1 = new jxl.write.Label(50, tmptitle, wcfFC);
24    wsheet.addCell(wlabel1);
25    wfont = new jxl.write.WritableFont(
26        WritableFont.ARIAL, 14,
27        WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE,
28        jxl.format.Colour.BLACK);
29    wcfFC = new jxl.write.WritableCellFormat(
30        wfont);
31    jxl.write.Label wlabel;
32    wlabel = new jxl.write.Label(00"写入内容");
33    wsheet.addCell(wlabel); //
34    wbook.write(); //写入文件
35    wbook.close();
36    os.close();
37    return "success";
38  }

39}

40



 


struts-config.xml

 1 <? xml version="1.0" encoding="UTF-8" ?>
 2 <! DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd" >
 3 < struts-config >
 4    < action-mappings >
 5      < action  type ="test.whw.upload.DownloadAction"  path ="/download" >
 6        < forward  name ="display"  path ="/display.jsp"   />
 7      </ action >
 8    </ action-mappings >
 9 </ struts-config >
10 <!-- display.jsp是成功的提示页面 -->

你可能感兴趣的:(Struts实时生成Excel文件下载)