下载excel
使用struts2的方式完成下载
对于下载excel2003,contentType如此设置
<result name="success" type="stream">
<param name="contentType">application/vnd.ms-excel</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="${#request.filename}.xls"</param>
<!-- <param name="contentDisposition">attachment;filename="${fileName}"</param> -->
<param name="bufferSize">1024</param>
</result>
对于下载excel2007,contentType如此设置
<param name="contentType">application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</param>
注:
1.<param name="contentDisposition">中的attachment表示以附件形式保存到浏览器,而不是直接输在浏览器页面,${fileName} 为action中的文件名变量,action中需要声明该变量并写getter和setter方法
2.<param name="inputName">中的inputStream为输入流变量名,需要在action中声明并写getter和setter方法
在action中
private InputStream inputStream;//输入流变量
private String fileName;//下载文件名
关键代码:
public String download(){
try {
//获取模板文件的id,通过id,来查询出模板文件的信息,获取路径path
Integer id=applicationTemplate.getId();
ApplicationTemplate applicationTemplate=applicationTemplateService.findApplicationTemplateById(id);
//获取路径path
// String path=applicationTemplate.getPath();
String path = "/download";
//将路径path转成输入流
InputStream in=new FileInputStream(new File(ServletActionContext.getServletContext().getRealPath("")+path));
//将输入流的数据放置到模型驱动对象的InputStream的属性中
applicationTemplate.setInputStream(in);
//获取下载文件的名字
String filename = applicationTemplate.getName();
filename = new String(filename.getBytes("gbk"),"iso-8859-1");
request.setAttribute("filename", filename);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "success";
}
--------------------------------------------------------------------------------------
* @Return: 一:使用javaweb的方式完成下载,return null
*/
// public String download(){
// try {
// //1:获取传递的申请模板ID,使用申请模板ID,查询申请模板信息,获取路径path
// Integer id = elecApplicationTemplate.getId();
// ElecApplicationTemplate applicationTemplate = elecApplicationTemplateService.findApplicationTemplateByID(id);
// //获取路径path
// String path = applicationTemplate.getPath();
// //2:将路径path转化成输入流,将输入流的信息,写到输出流(从response对象中获取输出流)
// InputStream in = new FileInputStream(new File(ServletActionContext.getServletContext().getRealPath("")+path));
//
// //获取申请模板文件的文件名
// String filename = applicationTemplate.getName();
// filename = new String(filename.getBytes("gbk"),"iso-8859-1");
//
// //设置文件下载的格式
// response.setContentType("application/msword");
// //设置附件的数据处理方式
// response.setHeader("Content-disposition", "attachment;filename="+filename+".doc");
// //设置下载附件的缓冲区大小
// response.setBufferSize(1024);
//
// OutputStream out = response.getOutputStream();
// for(int b=-1;(b=in.read())!=-1;){
// out.write(b);
// }
// out.close();
// in.close();
// } catch (Exception e) {
// e.printStackTrace();
// }
// return null;
// }
下载excel的更多相关文章
- 360浏览器下载excel问题解决方式
亲们有没有碰到过今天我遇到的这件事. 如果使用简单的链接.或者get方式提交的表单,去下载excel,那么360浏览器就会有问题. 问题是:它没把我用java生成的excel表格下载,而是去把我的列表 ...
- java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)
使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...
- 在线读取Mongodb数据库下载EXCEL文件
版本:Mongodb2.4.8 通过页面下载Excel文件 jsp <%@ page language="java" contentType="text/html; ...
- angularJS通过post方法下载excel文件
最近工作中遇到,要使用angularJS的post方法来下载excel的情况.网上找到一个帖子:http://stackoverflow.com/questions/22447952/angularj ...
- asp.net 下载Excel (数据流,不保存)--客户端
效果图: 前端页面 <html> <head> <title>Test For Excel</title> <script src="j ...
- Angularjs 通过WebApi 下载excel
如果想知道 AngularJs 通过WebAPI 下载Excel.请看下文,这里仅提供了一种方案. 服务器端代码如下: protected HttpResponseMessage GenereateE ...
- 使用DateSet下载Excel
这里我们使用Microsoft.Office.Interop.Excel.dll下载Excel,没有引用可点击下载 关键代码,ExcelHelper类 using System; using Syst ...
- 前端axios下载excel(二进制)
需求:通过后端接口下载excel文件,后端没有文件地址,返回二进制流文件 实现:axios(ajax类似) 主要代码: axios:设置返回数据格式为blob或者arraybuffer 如: var ...
- 前端axios下载excel,并解决axios返回header无法获取所有数据的问题
需求:通过后端接口下载excel文件,后端没有文件地址,返回二进制流文件 实现:axios(ajax类似) 主要代码: axios:设置返回数据格式为blob或者arraybuffer 如: var ...
- C# 之 下载EXCEL文件,自动用迅雷下载aspx
在浏览器中导出 Excel 得时候,如果浏览器绑定了迅雷,则会下载aspx文件. 解决:下载EXCEL文件,自动用迅雷下载aspx if (Request.QueryString["id&q ...
随机推荐
- demo: 全页面CSS3动画的一个参考例子
全页面CSS3动画的一个参考例子: http://wow.blizzard.cn/wow/wod-achievement/ 魔兽的一个活动页 第二页.第三页,文字进入页面 <script src ...
- Mybatis学习3——动态代理
动态代理只需要接口和mapper映射文件不需要实现类 动态代理规范 1.namespace必须是接口的全路径 2.接口的方法必须与sql的id一致 3.接口的入参与parameterType类型一致 ...
- spark 练习
scala> import org.apache.spark.SparkContext import org.apache.spark.SparkContext scala> import ...
- Tomcat相关的配置和设置
1.Tomcat环境配置方法见百度文库.略. 2.查看. webapps:所有课执行的WEB项目都放在次目录中 work:此文件保存了所有临时文件,当开发中发现一个程序无法正确执行的时候,就可以考虑将 ...
- 01.GOF设计模式_概述
0.Abstract Fcatory 提供一个创建一系列相关或者相互依赖对象的接口,而无需指定它们具体的类. 1. Adapter 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原 ...
- Mysql 隐式转换
表定义: CREATE TABLE `ids` ( id ) not null auto_increment, PRIMARY KEY (id) ); 表中存在一些IDs: 111, 112, 113 ...
- 选择、操作web元素
11月1日 什么是web元素 Selenium自动化主要就是:选择界面元素,操作界面元素(输入操作:点击.输入文字.拖拽等,输出操作:获取元素的各种属性),根据界面上获取的数据进行分析和处理 选择元素 ...
- Spark 调优(转)
Spark 调优 返回原文英文原文:Tuning Spark Because of the in-memory nature of most Spark computations, Spark pro ...
- Windows系统封装总结
注:使用虚拟机或者实体机进行封装均可,实体机进行封装的成功率更高.虚拟机进行封装建议使用VMware,12版本.过高的版本容易造成封装失败 一. Windows 10系统封装 1 ...
- U3D 贴图通道分离后为什么能减小体积
原理上,分离与否,不会减小图片原始体积,还可能增大了. RGBA32 分离后 = RGB24 + A8,这种情况下大小没变 但压缩后就不一样了,因为RGBA32整张图的压缩过程中,每个像素是否可以压缩 ...