Struts实时生成Excel文件下载
来源:互联网 发布:淘宝美工难吗 编辑:程序博客网 时间:2024/05/31 13:16
我做的项目原来是先在服务器上生成一个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()">
4DownLoad
5</html:button>
6</html:html>
7<script language='javascript'>
8function printAll(){ location.href="<%=request.getContextPath()%>/download.do"; }
9</script>
2<html:html>
3<html:button property="button" onclick="printAll()">
4DownLoad
5</html:button>
6</html:html>
7<script language='javascript'>
8function printAll(){ location.href="<%=request.getContextPath()%>/download.do"; }
9</script>
DownloadAction.java
1import org.apache.struts.action.*;
2import javax.servlet.http.*;
3import java.io.OutputStream;
4import 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
14publicclass DownloadActionextends 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
2import javax.servlet.http.*;
3import java.io.OutputStream;
4import 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
14publicclass DownloadActionextends 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
1package test.whw.upload;
2import java.io.*;
3import jxl.*;
4import jxl.write.*;
5import jxl.format.*;
6import java.util.*;
7import java.awt.Color;
8
9publicclass 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(5,0, 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(0,0, "写入内容");
33 wsheet.addCell(wlabel);//
34 wbook.write();//写入文件
35 wbook.close();
36 os.close();
37 return "success";
38 }
39}
40
2import java.io.*;
3import jxl.*;
4import jxl.write.*;
5import jxl.format.*;
6import java.util.*;
7import java.awt.Color;
8
9publicclass 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(5,0, 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(0,0, "写入内容");
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是成功的提示页面-->
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文件下载
- Struts实时生成Excel文件下载
- Struts实时生成Excel文件下载
- Struts实时生成Excel文件下载
- Struts实时生成Excel文件下载
- Struts结合数据实时生成Excel文件并直接下载
- 在线实时生成excel文件下载
- 在线实时生成excel文件下载
- 在线实时生成Excel文件流供下载
- 在线实时生成Excel文件流供下载
- 在线实时生成Excel文件流供下载
- 在线实时生成Excel文件流供下载 (SSH)
- 在线实时生成Excel文件流供下载
- Jxl在线实时生成Excel文件流供下载
- 在线实时生成Excel文件流供下载
- PHP不生成文件进行实时下载
- Servlet生成Excel文件并提示下载
- struts2生成excel文件和下载
- [KMP-NEXT数组特性]HDU 3336 Count the string
- Linux实践工程师学习笔记十一:PAM认证模块
- android:paddingLeft与android:layout_marginLeft的区别
- 编程htc的使用
- jdk 安装配置
- Struts实时生成Excel文件下载
- 在jboss上部署web应用详解
- 面对数字媒体是拒绝还是合作?纽约时报向Flipboard低头
- 3C产品认证免收费用项目
- 供应链变革专案的利器–SCORE方法论 (五)
- Solve "bash: /bin/cp: Argument list too long"
- 初识 curl (安装与示例)
- Hadoop 文件系统笔记
- Windows服务器环境下flv视频播放——对未缓冲进度条实现拖动