下载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 ...
随机推荐
- iOS如何把所有页面状态栏的字体颜色都设置为白色
第一步:在info.plist中添加一个字段:view controller -base status bar 设置为NO 第二步:在一个所有界面都继承的父类里添加: if (IOS7_OR_LATE ...
- iOS第三方登录qq
http://blog.sina.com.cn/s/blog_7b9d64af0101e5vj.html
- iPhone 获取指定格式的时间和日期
1. 显示当前的年月日+时间 NSDate* date = [NSDate date]; NSDateFormatter* formatter = [[[NSDateFormatter alloc] ...
- 《算法》第五章部分程序 part 8
▶ 书中第五章部分程序,包括在加上自己补充的代码,适用于基因序列的 2-Bit 压缩算法,行程长压缩算法,Huffman 压缩算法,LZW 压缩算法 ● 适用于基因序列的 2-Bit 压缩算法 pac ...
- zabbix模块注意
1,每个监控组使用一个模版,对模版操作时会对监控组的每个模版进行修改操作.
- PHP + Apache 在 Linux(centos7)系统下的环境搭建,基于 yum
(本文采用的是 Centos7 的操作系统,简单起见,以下全部采用 yum 安装,有这么好用的东西为什么要自己去一个一个编译呢) 1, 安装 Apache => yum -y install ...
- SonarQube与Eclipse配合
Sonar安装 下载Sonar 点击下面网址下载Sonar: http://dist.sonar.codehaus.org/sonar-3.5.1.zip ,下载后解压 解压后安装 解压后你将要看到如 ...
- 机器学习进阶-图像基本操作-数值计算 1.cv2.add(将图片进行加和) 2.cv2.resize(图片的维度变换) 3.cv2.addWeighted(将图片按照公式进行重叠操作)
1.cv2.add(dog_img, cat_img) # 进行图片的加和 参数说明: cv2.add将两个图片进行加和,大于255的使用255计数 2.cv2.resize(img, (500, ...
- android平台yuv缩放相关<转>
Android的视频相关的开发,大概一直是整个Android生态,以及Android API中,最为分裂以及兼容性问题最为突出的一部分.摄像头,以及视频编码相关的API,Google一直对这方面的控制 ...
- YUV420格式解析<转>
在YUV420中,一个像素点对应一个Y,一个2X2的小方块对应一个U和V.对于所有YUV420图像,它们的Y值排列是完全相同的,因为只有Y的图像就是灰度图像. YUV420sp与YUV420p的数据格 ...