`

Struts实时生成Excel文件下载

阅读更多

 

我做的项目原来是先在服务器上生成一个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()%><!---->/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是成功的提示页面-->

分享到:
评论

相关推荐

    struts2生成Excel文件上传下载

    项目:Struts2UpAndDownLoadFile 1.实现文件的上传和下载 项目:Struts2HandleExcelFile 1.实现文件的上传和下载 2.利用apache的poi-3.5-FINAL-20090928.jar组件实现创建Excel表格。

    [转]java struts2+jxl生成并导出Excel

    这篇博客文章结合了这两个技术,展示了如何在Struts2应用中生成Excel文件并将其导出给用户下载。 在Java开发中,导出数据到Excel是常见的需求,特别是在处理大量结构化数据时,如报表或数据分析。JXL库提供了一个...

    struts2 支持的下载以及如何动态生成excel表格文件

    总的来说,Struts2提供了便捷的方式来处理文件下载,而Apache POI使我们能够在Java中动态生成Excel文件,这两者结合为Web应用提供了强大的文件操作能力。在实际开发中,你需要根据具体的需求进行适当的调整和优化,...

    Struts2文件流方式导出下载excel、Txt、image图片

    通过上述步骤,我们就可以在Struts2框架下实现文件流方式的下载功能,无论是Excel、TXT还是图片,都能有效地直接返回给浏览器,让客户端进行下载。这种方式既节省了服务器资源,也提高了用户体验。在实际项目中,...

    Struts2中POI在内存中生成Excel文件并下载

    下面将详细介绍如何在Struts2中利用POI在内存中生成Excel文件并提供下载。 首先,了解Apache POI的基本用法。POI提供了HSSFWorkbook类,用于处理Excel的XLS格式,而XSSFWorkbook则处理XLSX格式。这里我们主要讨论...

    struts2处理Excel生成txt文件

    本示例涉及的是从Excel文件中读取数据,并将其转换成TXT文件的过程。这个过程通常用于数据迁移、数据分析或者格式转换等场景。以下是对这个主题的详细阐述: 1. **读取Excel文件**: 在Java开发中,我们可以使用...

    struts2实现excel导出

    在客户端,用户可以通过点击一个链接或按钮触发这个Action,浏览器将弹出一个对话框让用户选择保存或打开生成的Excel文件。 这就是使用Struts2和Apache POI实现Excel导出的基本步骤。注意,实际的项目可能需要考虑...

    Struts2+Excel导出Demo,测试可用带JAR包

    5. **响应流**: 为了将生成的Excel文件发送到浏览器,你需要将Excel内容转换为字节流,并设置响应头,告知浏览器这是一个Excel文件,例如设置Content-Type为"application/vnd.ms-excel"。 6. **Struts2配置**: 配置...

    java代码生成excel表并下载

    总的来说,Java通过Apache POI库提供了一种强大而灵活的方式来生成Excel文件,结合Web框架,可以方便地实现文件下载功能,满足各种业务需求。在开发过程中,确保对性能进行优化,避免内存溢出,同时关注代码的可读性...

    struts2 excel下载DEMO和jquery生成二维码DEMO

    然后,创建一个Action类,定义一个方法来生成Excel文件,该方法将查询到的数据转换为POI的工作表对象。最后,通过Struts2的StreamingResult或者FileNameAwareOutputStreamActionOutputStream结果类型,将生成的Excel...

    struts2导出excel笔记

    通过以上步骤,我们可以实现一个简单的Struts2应用,该应用能够根据用户请求,使用Apache POI库动态生成并导出Excel文件。在实际项目中,可能还需要考虑数据过滤、排序、分页等功能,以及与数据库的交互,这些都可以...

    Struts结合poi.jar生成Excel报表

    5. 生成Excel文件时,可以将工作簿写入到OutputStream,然后由Struts框架返回给客户端,或者保存到服务器的指定位置。 描述中提到,代码中有详细的注释,这对于初学者来说是非常宝贵的资源。通过阅读这些注释,可以...

    struts2中利用poi导出excel

    最后,通过Struts2的拦截器机制,当用户请求这个Action时,将会触发`exportExcel`方法,生成Excel文件并自动触发下载。 总结起来,利用Struts2和Apache POI,我们可以方便地实现从Web应用中导出数据到Excel的功能。...

    struts2整合apache的jxl导入导出excel表格

    此方法接受一个包含多种数据类型的列表,并返回一个 `InputStream`,该流可以被 Struts2 动作类用来生成并下载 Excel 文件。 3. **服务层接口实现**: 创建 `ExcelServiceImpl` 类来实现 `IExcelService` 接口。在...

    Struts2+JXL 下载 Excel 文档

    在"Struts2+JXL 下载 Excel 文档"的场景中,开发者通常会创建一个Action,这个Action负责生成Excel文档并提供下载。用户通过浏览器访问特定URL,Struts2框架接收到请求后,会路由到相应的Action。Action内部会利用...

    struts2+poi实现导出Excel文件

    Struts2 和 Apache POI 的结合使用主要集中在创建 Web 应用程序中导出 Excel 文件的功能上。Apache POI 是一个 Java 库,允许开发者创建、修改和显示 Microsoft Office 格式的文件,其中包括 Excel。而 Struts2 是一...

    Struts文件上传和Excel导出

    可以提供下载链接让用户下载生成的Excel文件。 5. **安全考虑**:在导出过程中,要注意避免潜在的安全问题,如内存溢出(大量数据时)、Excel公式注入等。 **Hibernate集成** 1. **实体类**:创建员工和部门的...

    struts2 poi导出到excel

    这样,当用户访问特定的URL时,服务器就会触发`ExportExcelAction`的`execute`方法,生成Excel文件并发送给客户端下载。 总结一下,Struts2结合Apache POI实现数据导出到Excel的关键步骤包括: 1. 引入Apache POI的...

    Spring + struts2 + hibernate excel生成

    - **结果类型**:Struts2的结果类型可以配置为生成Excel文件,然后返回给客户端下载。 3. **Hibernate框架的角色**: - **数据持久化**:Hibernate简化了数据库操作,允许开发者通过对象模型与数据库交互。在生成...

Global site tag (gtag.js) - Google Analytics