频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

Struts实时生成Excel文件下载

来源: 作者: 出处:巧巧读书 2006-05-11 进入讨论组

我做的项目原来是先在服务器上生成一个excel文件,然后用jspsmartupload下载的,可是由于用jspsmartupload下载的excel文件由于编码问题会有损坏,而且服务器的压力也太大,所以改为在Action中生成excel文件,然后下载,方便多了。

由于项目的原因,excel文件是实时生成的,对于jxl的使用,大家可以参考jxl相关的文章。
有什么问题可以和我联系。
MSN:whw_dream(AT)hotmail.com
代码如下:
test.jsp



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


DownloadAction.java


import org.apache.struts.action.*;
import javax.servlet.http.*;
import java.io.OutputStream;
import test.whw.upload.ExcelBean;
/**
 * <p>Title:DownloadAction </p>
 * <p>Description: QRRSMMS </p>
 * <p>Copyright: Copyright (c) 2004 jiahansoft</p>
 * <p>Company: jiahansoft</p>
 * @author wanghw
 * @version 1.0
 */

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

    return mapping.findForward("display");
  }
}


ExcelBean.java


package test.whw.upload;
import java.io.*;
import jxl.*;
import jxl.write.*;
import jxl.format.*;
import java.util.*;
import java.awt.Color;

public class ExcelBean {
  public ExcelBean(){}
  public String expordExcel(OutputStream os)throws Exception{
    jxl.write.WritableWorkbook wbook = Workbook.createWorkbook(os); //建立excel文件
    String tmptitle = "测试文件"; //标题
    jxl.write.WritableSheet wsheet = wbook.createSheet("第一页", 0); //sheet名称
    //设置excel标题
    jxl.write.WritableFont wfont = new jxl.write.WritableFont(
        WritableFont.ARIAL, 16,
        WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE,
        jxl.format.Colour.BLACK);
    jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(
        wfont);
    jxl.write.Label wlabel1;
    wlabel1 = new jxl.write.Label(5, 0, tmptitle, wcfFC);
    wsheet.addCell(wlabel1);
    wfont = new jxl.write.WritableFont(
        WritableFont.ARIAL, 14,
        WritableFont.BOLD, false, jxl.format.UnderlineStyle.NO_UNDERLINE,
        jxl.format.Colour.BLACK);
    wcfFC = new jxl.write.WritableCellFormat(
        wfont);
    jxl.write.Label wlabel;
    wlabel = new jxl.write.Label(0, 0, "写入内容");
    wsheet.addCell(wlabel); //
    wbook.write(); //写入文件
    wbook.close();
    os.close();
    return "success";
  }
}



struts-config.xml

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


浏览URL http://www.qqread.com/java/2006/05/f131109002.html 更多文章 更多内容请看Struts框架应用专题专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章