下载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 ...
随机推荐
- 关于thinkphp5被入侵后的一些思考
最近一段时间thinkphp5爆出漏洞 request.php中的请求过滤不严 是得web端 可以直接写入一个文件到服务器上 进而可得webshell权限 我的一个客户 就是这样被入侵了 刚开始 ...
- web:频繁刷新浏览器的页面【小工具】
[目的] 频繁刷新某一浏览器页面,小测试一下加载性能,或者打开的文件是否及时关闭,会不会导致服务器奔溃 [小工具] 新建txt,输入以下内容,并保存为html的格式,然后在浏览器中打开,则会定时刷新指 ...
- unzip
中文乱码问题: unzip -O CP936 filename
- ASPxCallback组件(珍藏版)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs ...
- makefile中 $@, $^, $<, $?含义
$@ 表示目标文件 $^ 表示所有的依赖文件 $< 表示第一个依赖文件 $? 表示比目标还要新的依赖文件列表 例子 root_num.exe: root_num.o my_root.o gcc ...
- 用U盘制作启动盘后空间变小的恢复方法
先把u盘插好, 运行cmd(按住键盘左下角第二个windows键的同时按R), 输入diskpart,回车, (此时可以再输入list disk,回车,能看到这台电脑的所有磁盘大致情况,u盘一般是磁盘 ...
- js 弹窗的实现
原理: 1. 点击按钮,触发窗口显示,遮罩层显示,并设置窗口的位置 2. 为弹出的窗口绑定鼠标滚动事件和视窗改变事件 3.点击关闭按钮,弹窗消失,遮罩层消失 html 代码: <!DOCTYPE ...
- SIGCHLD信号
SIGCHLD的产生条件 子进程终止时 子进程接收到SIGSTOP信号停止时 子进程处在停止态,接受到SIGCONT后唤醒时 也就是说:子进程的运行状态发生变化就会发送SIGCHILD信号:这里的意思 ...
- Homebrew安装与使用
Homebrew是什么? 官方解释: Homebrew是以最简单,最灵活的方式来安装苹果公司在MacOS中不包含的UNIX工具. 官网:传送门 Git仓库地址:传送门 Homebrew 怎么安装 ?怎 ...
- 【357】sorted 函数高级用法
参考:Python 内置函数sorted()在高级用法 - Brad1994 - 博客园 sorted 函数主要实现的就是对于可迭代对象进行排序,对于一维数据排序很好理解与实现,直接调用即可,本文主要 ...