我做的项目原来是先在服务器上生成一个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是成功的提示页面-->
分享到:
相关推荐
项目:Struts2UpAndDownLoadFile 1.实现文件的上传和下载 项目:Struts2HandleExcelFile 1.实现文件的上传和下载 2.利用apache的poi-3.5-FINAL-20090928.jar组件实现创建Excel表格。
把Excel表中的数据读取到list集合中 再对集合进行处理并生成txt文件直接下载,代码运行成功可用
Struts2文件流方式导出下载excel、Txt、image图片,直接返回给浏览器提示下载,不生成临时文件,直接保存在客户端
完整代码且集成了ssh2 博文链接:https://wuzhaohuixy-qq-com.iteye.com/blog/713926
NULL 博文链接:https://fengyunxiao.iteye.com/blog/469943
* 把数据库中的字段导入到Excel ,并生成Excel文档 **/ public ActionForward getDownload(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) ...
OA (ssh) 基本实现(poi 生成 Excel , struts2动态下载 mysql数据库文件) 学习笔记(含源代码) 借鉴 风中叶 老师的视频,写的文章,代码比较详实。 说了很多我的看法,和思考,做了充分的日志
程序使用Struts2(SSH即Struts2+Hibernate+Spring)+POI+MySQL实现Excel动态数据导入和导出,程序源码文件附带运行说明
调用PageOffice还可以实现从空白的excel文件动态生成excel表格,设置公式并填充数据。 集成PageOffice不但能够实现在线编辑、保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和...
使用freemarker生成word ,并集成struts2 同时生成及下载文档 资料附有Java源代码和自己总结的使用说明及注意事项 大至预览如下: 1、用word编辑好模板 普通字符串替换为 ${string} 表格循环用标签 姓名:${...
ssh(struts2.0 spring2.5 hibernate3.2)整合作的一个用户登录验证以及用户数据生成excel mytest.users.sql 这个是整个例子的数据库脚本 直接在myeclipse里面导入sshShop.zip 就行了,由于csdn只能上传15MB的的文件,...
针对对iReport-3.7.5的生成文件在struts2.1.6中的库文件,找了好久才收集到,本人测试了,可以生成日语pdf,xls文件,至于在struts2中的配置传参已经有许多相关的文章了
JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的Action等 VO --> bean.java及 bean.hbm.xml配置文件 Service --> Service接口定义类 DAO --...
JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的Action等 VO --> bean.java及 bean.hbm.xml配置文件 Service --> Service接口定义类 ...
ehcache二级缓存,c3p0连接池,文件上传,dom4j,mysql数据库驱动,jscharts图表统计图走势,JSTL,struts日历控件包,base64加密,Excel文件生成,邮件发送,log4j以及log4j配置文件,mysql数据库连接Properties...
JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的Action等 VO --> bean.java及 bean.hbm.xml配置文件 Service --> Service接口定义类 ...
自动生成dao,daoImpl,service,serviceImpl,action,struts.xml和application.xml配置 添加分页支持 查找某一个字段支持 根据hql语句查找支持 导出Excel支持
这是一个Struts2 Hibernate3 Spring2整合的小例子,里面包含了整合所需的jar文件,实现了增删改查,并且实现了根据表格导出excel文件的功能!