在工作中需要在JSP页面中,将POI生成的Excel文件直接下载,开发平台是基于Struts2+Spring2的,在网上查了一下,例子不少,也都给我提供了一定的帮助,但很少有拿来不需要进行调试就直接能用的代码例子。所以我把自己最后的实现代码贴出来,希望能对后来者有一定的帮助,或许实现方法不是最好的,但应该是不需要进行过多调试就可以直接用的。
主要关注@Result的params参数设置部分的代码
public class EfficDataAction extends ActionSupport {
//...省略部分代码
private InputStream inputStream;
private String contentDisposition;
private String documentFormat = "xls";
private String contentType;
public String getContentType() {
return documentFormat == "xlsx" ? "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
: "application/vnd.ms-excel;charset=ISO8859-1";
}
@Resource
private EfficDataService efficdataservice;
public String getContentDisposition() {
return contentDisposition;
}
public InputStream getInputStream() {
return inputStream;
}
public void setInputStream(InputStream inputStream) {
this.inputStream = inputStream;
}
public void setContentDisposition(String contentDisposition) {
this.contentDisposition = contentDisposition;
}
public String getDocumentFormat() {
return documentFormat;
}
public void setDocumentFormat(String documentFormat) {
this.documentFormat = documentFormat;
}
public EfficDataService getEfficdataservice() {
return efficdataservice;
}
@Resource
public void setEfficdataservice(EfficDataService efficdataservice) {
this.efficdataservice = efficdataservice;
}
//...省略部分代码
//这里的params参数配置是关键
@Action(value = "/createefficfile", results = { @Result(name = "success", type = "stream") }, params = {
"contentType", "${contentType}", "inputName", "${inputStream}",
"contentDisposition", "${contentDisposition}", "bufferSize", "2048" })
public String createefficfile() throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//...下面的3行代码是我生成Excel文件用的,请更具实际需要裁减
HSSFWorkbook book = new HSSFWorkbook();
book = efficdataservice.createEfficCollectFile(this);
book.write(baos);
//...下面的代码是设置Excel文件下载的一些必须内容
//...文件名需要进行转码,不然中文的话可能会有问题
this.setInputStream(new ByteArrayInputStream(baos.toByteArray()));
this.setContentDisposition("filename=\\"
+ java.net.URLEncoder.encode(getUploadFileFileName(), "UTF-8")
+ getDocumentFormat());
return "success";
}
}
我是用注解来配置Struts2的Action的,用xml配置文件应该也不会有问题。
转载请注明出处...
分享到:
相关推荐
Struts2文件流方式导出下载excel、Txt、image图片,直接返回给浏览器提示下载,不生成临时文件,直接保存在客户端
Struts实时生成Excel文件下载
项目:Struts2UpAndDownLoadFile 1.实现文件的上传和下载 项目:Struts2HandleExcelFile 1.实现文件的上传和下载 2.利用apache的poi-3.5-FINAL-20090928.jar组件实现创建Excel表格。
把Excel表中的数据读取到list集合中 再对集合进行处理并生成txt文件直接下载,代码运行成功可用
完整代码且集成了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数据库文件) 学习笔记(含源代码) 借鉴 风中叶 老师的视频,写的文章,代码比较详实。 说了很多我的看法,和思考,做了充分的日志
调用PageOffice还可以实现从空白的excel文件动态生成excel表格,设置公式并填充数据。 集成PageOffice不但能够实现在线编辑、保存真正的Office文档,而且还可以轻松实现Word、Excel文档的动态数据填充、格式控制和...
程序使用Struts2(SSH即Struts2+Hibernate+Spring)+POI+MySQL实现Excel动态数据导入和导出,程序源码文件附带运行说明
使用freemarker生成word ,并集成struts2 同时生成及下载文档 资料附有Java源代码和自己总结的使用说明及注意事项 大至预览如下: 1、用word编辑好模板 普通字符串替换为 ${string} 表格循环用标签 姓名:${...
针对对iReport-3.7.5的生成文件在struts2.1.6中的库文件,找了好久才收集到,本人测试了,可以生成日语pdf,xls文件,至于在struts2中的配置传参已经有许多相关的文章了
ssh(struts2.0 spring2.5 hibernate3.2)整合作的一个用户登录验证以及用户数据生成excel mytest.users.sql 这个是整个例子的数据库脚本 直接在myeclipse里面导入sshShop.zip 就行了,由于csdn只能上传15MB的的文件,...
这是一个Struts2 Hibernate3 Spring2整合的小例子,里面包含了整合所需的jar文件,实现了增删改查,并且实现了根据表格导出excel文件的功能!
用于JAVA开发中的 Struts2.0 + Spring2.0 + Hibernate3.2 框架整合程序开发】 强大的支撑功能,堪称JAVA SSH编程的利器,你绝对值得拥有! 自动生成以下所有内容(即:完整的Java SSH支持的工程) Sturts2.0配置--> ...
JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的Action等 VO --> bean.java及 bean.hbm.xml配置文件 Service --> Service接口定义类 ...
本程序是一个完整的ssh框架整合的项目,实现了基本的增、删、查、改功能,还是现了xls(excel)表格的生成和输入输出支持下载。还是用了简单的表单验证。详情代码中有详细的注释。开发环境(MyEclipse6.5 +SQLServer...
ehcache二级缓存,c3p0连接池,文件上传,dom4j,mysql数据库驱动,jscharts图表统计图走势,JSTL,struts日历控件包,base64加密,Excel文件生成,邮件发送,log4j以及log4j配置文件,mysql数据库连接Properties...
AutoCode代码生成器(SSH版) 【用于JAVA开发中的 Struts2.0 + Spring2.0 + Hibernate3.2 框架整合程序开发】 强大的支撑功能,堪称JAVA SSH编程的利器,你绝对值得拥有! 自动生成以下所有内容(即:完整的Java SSH支持...
自动生成dao,daoImpl,service,serviceImpl,action,struts.xml和application.xml配置 添加分页支持 查找某一个字段支持 根据hql语句查找支持 导出Excel支持