下载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 ...
随机推荐
- Ansible:遇到错误 "sudo: /etc/sudoers is world writable\r\nsudo: no valid sudoers sources found, quitting
执行ansible-playbook时,遇到该错误: 经过检查发现是因为在Linux中 /etc/sudoers该文件必须是只读权限的才行,故我们需要修改其权限为440,到root账户下修改,直接ch ...
- Exchange Tech Issues 参考网站
Exchange Tech Issues: https://www.experts-exchange.com/ DAG部署: http://blog.51cto.com/4096415/958671
- 《汇编语言 基于x86处理器》第十章 - 运行一个 16位实地址汇编程序
▶ 书上第 10 章,主要讲了宏,引用了一个 16 位实地址的程序,从代码开始到运行 ● 代码 ; main.asm INCLUDE Macros.inc IF IsDefined( RealMode ...
- Python学习笔记_week1
一.编程语言的分类 编译型和解释型.静态语言和动态语言.强类型定义语言和弱类型定义语言,Python是一门动态解释型的强类型定义语言. Python的优缺点 Python解释器:CPython.IPy ...
- 4. easyui删除功能实例
############实例1############## function delPerson(id) { $.messager.defaults = { ok : "确定", ...
- 【ASP.NET 插件】分享一个可视化HTML编辑器 CKEditor.NET
因为公司网站的可视化HTML编辑器IE兼容性问题,js报错不能使用,于是在网上找到了个还行的,图片本地上传的话直接把图片拖到编辑窗口就可以了.这个编辑器是在开源中国看到的,个人觉得还不错! CKEdi ...
- oracle登陆认证方式
转自:http://blog.itpub.net/14359/viewspace-683064/ 案例: 1,发现此时操作系统认证不成功: C:\Users\Administrator.WIN-201 ...
- GridEh 当前行
DataSet当前行,不是当前选中的行 int arow = 0; arow = cds1->RecNo; arow = cds1->RecordCount; arow ...
- JAVA企业级快速开发平台,JEECG 3.7.3 新春版本发布
JEECG 3.7.3新春版本发布 - 微云快速开发平台 导读 ⊙精美Echart报表 ⊙二维码生成功能 ⊙Online接口改造采用JWT机制 ⊙智能菜单搜索 ⊙代码生成器模板优 ...
- python-玉米(小米)商城作业
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...