刚开始使用ajax做Excel导出,发现ajax做不了浏览器导出只能下载到本地,于是用form提交可以提供浏览器下载Excel。

1>用ajax做本地下载:

  FileOutputStream fout = new FileOutputStream("C:/student.xls");
  .write(fout);
   fout.close();

2>用form做浏览器下载:

  jsp:HTML:

    <form id="myform" name="myform" method="post" action="" style="float:right;">
    <input type="hidden" name="year" >
    <input type="button" id="jqueryBtn" onclick="exportData()" value="导出数据" /></form>

    js:

    document.getElementById("myform").setAttribute("action", url);//url提交的路径
    document.getElementById("myform").year.value = str;//提交的参数值 
    document.getElementById("myform").submit();

  Java:

    String name = new String((fileName.getBytes("GBK")), "ISO8859_1");
    OutputStream os = response.getOutputStream();
    response.reset(); 
    response.setContentType("application/vnd.ms-excel"); 
    response.setHeader("Content-disposition", "attachment; filename=" + name);
    wb.write(os); 
    os.flush();
    os.close();

ajax不能导出的原因:ajax请求只是个“字符型”的请求,即请求的内容是以文本类型存放的。文件的下载是以二进制形式进行的,ajax没法解析后台返回的文件流,所以无法处理二进制流response输出来下载文件;通过ajax异步传输的数据格式有三种,分别是html、xml以及json格式,不能传递流的格式。

最新文章

  1. 分布式服务框架dubbo原理解析(转)
  2. 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-1 前言
  3. Linux(Ubuntu 14.0)
  4. SharePoint 判断用户是否在字段&quot;人员和组&quot;里面
  5. UBUNTU下Y86模拟器的安装和使用
  6. CF 628A --- Tennis Tournament --- 水题
  7. Entity Framework若干个扩展
  8. aps.net 用ajax 读取服务端值
  9. Ruby on Rails: 使用devise+cancan+rolify建立完整的权限管理系
  10. 题目要求:建立一个类Str,将一个正整数转换成相应的字符串,例如整数3456转换为字符串&quot;3456&quot;.
  11. pwnable.kr-fd-Writeup
  12. ActivityThread 源码分析
  13. [蓝点ZigBee] Zstack 之按键驱动以及控制LED灯 ZigBee/CC2530 视频资料
  14. 深入理解Java虚拟机1-chap1-2-斗之气8段
  15. linux 高级字符设备驱动 ioctl操作介绍 例程分析实现【转】
  16. JDK1.6 Java.lang.Null.Pointer.Exception
  17. springcloud 分布式服务跟踪sleuth+zipkin
  18. python的时间处理-time模块
  19. Spring框架的AOP的底层实现
  20. Sql-Server触发器,根据条件匹配另一个表中的字段

热门文章

  1. 配置 IO 时要记得换 Page
  2. 一个 PHP 面试题
  3. Java练习 SDUT-2746_大小写转换
  4. python代码实现树莓派3b+驱动步进电机
  5. 请注意更新TensorFlow 2.0的旧代码
  6. python selenium 测试 LOG
  7. 解决ubuntu的Idea启动No JDK found. Please validate either IDEA_JDK, JDK_HOME or JAVA_HOME environment variable points to valid JDK installation.
  8. 最强 NLP 预训练模型库 PyTorch-Transformers 正式开源:支持 6 个预训练框架,27 个预训练模型
  9. java StringBuffer 与 StringBuilder
  10. H3C 什么是OSPF