JSP代码如下:

JSP端引入jquery.easyui.min.js库:

<script type="text/javascript" src="<c:url value="/resources/jquery/jQuery-2.2.0.min.js"/>"></script> <!--先引入jquery库-->

<script type="text/javascript" src="<c:url value="/resources/plugins/jquery.easyui.min.js"/>"></script> <!-- 再引入jquery.easyui.min.js库 -->

<!-- 隐藏form表单,下载excel使用 -->
<form id="excel" action='' method="get">
<input type="hidden" id="id" name="id" />
<input type="hidden" id="startTime" name="startTime" />
<input type="hidden" id="endTime" name="endTime" />
</form>

JS代码如下:

function downloadExcel(id){
console.log("id",id);
$("#excel").find("#startTime").val(startTime.val());
$("#excel").find("#endTime").val(endTime.val());
$("#excel").find("#id").val(id);
//下载excel表单提交
$('#excel').form('submit', {
url : basePath + "device/downloadExcel",
success : function(data) {
var msg = eval('(' + data + ')').msg;
if(msg!=null){
showMsgModal(msg);
}
}
});
}

springMVC后台代码如下:

@RequestMapping(value = "/downloadExcel", method = RequestMethod.GET)
public void excel(HttpServletRequest request,HttpServletResponse response,HttpSession session,
@RequestParam(value = "id", required = false) String id,
@RequestParam(value = "startTime", required = false) String startTime,
@RequestParam(value = "endTime", required = false) String endTime){
OutputStream responseOutput = null;
try{
if(StringUtils.isBlank(id)){
write2response(response,"ID号不能为空");
return;
}
if(StringUtils.isBlank(startTime) || StringUtils.isBlank(endTime)){
write2response(response,"开始时间或结束时间不能为空");
return;
}
XSSFWorkbook wbook = new XSSFWorkbook(); //测试下载用,所以这里excel内容直接写死
XSSFSheet sheet = wbook.createSheet("sheet000");
XSSFRow row = sheet.createRow((int) 0);
Cell cell = row.createCell(0);
cell.setCellValue("abc123");
//写excel文件到response输出流
//下载文件名称
String fileName = id+"["+startTime+"-"+endTime+"]" + DateUtil.yyyy_MM_dd_HH_mm_ss();
fileName = new String(fileName.getBytes("GBK"), "iso8859-1");
response.reset();// 清空输出流
response.setHeader("Content-disposition", "attachment;filename="+ fileName + ".xlsx");
response.setContentType("application/msexcel");// 定义输出类型
responseOutput = response.getOutputStream();
wbook.write(responseOutput);
responseOutput.flush();
} catch (IOException e1) {
logger.error(e1);
write2response(response,"下载出错");
} finally{
try {
if(null != responseOutput){
responseOutput.close();
}
} catch (IOException e) {
logger.error(e);
write2response(response,"下载出错");
}
}
}

JAVA web端JS下载excel文件的更多相关文章

  1. Web 端 js 导出csv文件(使用a标签)

    前言 导出文件,使用最多的方式还是服务器端来处理.比如jsp 中使用response 的方式. 但是,有时候可能就想使用web 前端是否也可以把页面上的内容导出来呢? 比如说,导出页面的一个表格. 这 ...

  2. Web前端js下载流文件

    前端下载文件大概有以下种: 1)a标签链接下载 <a href="url">点击链接下载</a> 2)表单form提交下载 var form = $(&qu ...

  3. Web 端 js 导出csv文件

    http://www.qdfuns.com/notes/35821/2ab249182734d1f5c66da6b5cf395db9.html

  4. Web 端异步下载文件

    Web 端异步下载文件 实现文件异步下载: 在服务端无法返回文件,或发生异常时给予提示. JavaScript: 服务端返回的JSON对象形如: { code:200, msg:'下载成功|未找到指定 ...

  5. 浏览器端JS导出EXCEL

    浏览器端JS导出EXCEL FileSaver.js 实现了在本身不支持 HTML5 W3C saveAs() FileSaver 接口的浏览器支持文件保存.FileSaver.js 在客户端保存文件 ...

  6. 在线读取Mongodb数据库下载EXCEL文件

    版本:Mongodb2.4.8 通过页面下载Excel文件 jsp <%@ page language="java" contentType="text/html; ...

  7. NodeJs实现下载Excel文件

    nodejs作为一门新的语言,报表功能也不是十分完善. (1).js-xlsx : 目前 Github 上 star 数量最多的处理 Excel 的库,支持解析多种格式表格XLSX / XLSM / ...

  8. C# 之 下载EXCEL文件,自动用迅雷下载aspx

    在浏览器中导出 Excel 得时候,如果浏览器绑定了迅雷,则会下载aspx文件. 解决:下载EXCEL文件,自动用迅雷下载aspx if (Request.QueryString["id&q ...

  9. jsp下载excel文件

    jsp下载excel文件的的实现方法很多,今天也遇到这个问题,乱敲了一阵,终于搞定了,记下来和朋友们分享吧. 假设需要下载excel文件的jsp页面名为:down.jsp 对应的后台action名为: ...

随机推荐

  1. 【Mybatis】【1】generate批量生成实体类,数据库接口类和mapper

    前言: 1,实体类之类如果自己写的话,比较繁琐,还容易出错,所以用generate自动生成 2,int类型可能会生成为short类型,建议不要手动改回int类.因为下次生成又是short类型了,可能会 ...

  2. CentOS 6快捷安装RabbitMQ教程

    1.安装Erlang yum install erlang 2.安装RabbitMQ yum install rabbitmq-server 3.配置开机自启动 chkconfig rabbitmq- ...

  3. Python3+PyCharm+Django+Django REST framework开发教程

    一.说明 自己一是想跟上潮流二是习惯于直接干三是没有人可以请教,由于这三点经常搞得要死要活.之前只简单看过没写过Diango,没看过Django REST framework,今天一步到位直接上又撞上 ...

  4. AutoMapper实现对象转换的几种方式

    namespace ConsoleApplication1 { class Program { static void Main(string[] args) { //1.普通转换 Name name ...

  5. okhttp请求文件异常解决方法

    微信借口中获取素材的接口返回只是一个缓存的文件流 InputStream, 接口中请求永久图片素材返回的是 InputStream; 接口项目获取到 InputStream 可以直接通过文件流写到文件 ...

  6. 错误:Bean property 'sessionFactory' is not writable or has an invalid setter method.

    Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'sessionFactory' ...

  7. 面试题--Java

    &与&&区别? &与&&都是逻辑运算符,都是判断两边为真则为真,两边为假则为假,但是&&如果第一个条件不成立的话,后面的将不会再继续执行 ...

  8. python面向对象的基础语法(dir内置函数、self参数、初始化方法、内置方法和属性)

    面相对象基础语法 目标 dir 内置函数 定义简单的类(只包含方法) 方法中的 self 参数 初始化方法 内置方法和属性 01. dir 内置函数(知道) 在 Python 中 对象几乎是无所不在的 ...

  9. Codeforces Round #309 (Div. 1) A(组合数学)

    题目:http://codeforces.com/contest/553/problem/A 题意:给你k个颜色的球,下面k行代表每个颜色的球有多少个,规定第i种颜色的球的最后一个在第i-1种颜色的球 ...

  10. VBA消息框

    MsgBox函数显示一个消息框,并等待用户点击一个按钮,然后根据用户点击该按钮的动作执行. 语法 MsgBox(prompt[,buttons][,title][,helpfile,context]) ...