【ajax导出excel数据异常】

平常项目中遇到需要后台生成excel表格并导出,就想当然的前台用ajax调用,后台用Aspose.Cells.lic生成文件流并导出,

后台数据整合没什么问题,前台页面没有任何反应。

原因:ajax请求只是个“字符型”的请求,即请求的内容是以文本类型存放的。文件的下载是以二进制形式进行的,ajax没法解析后台返回的文件流,所以无法处理二进制流response输出来下载文件。

解决办法:

用提交form表单的形式或者<a>标签跳转的形式导出excel

  1. 1 var url = "/abc/abc?paras="+args;
    2
    3 $(‘<form method="get" action="‘ + url + ‘"></form>‘).appendTo(‘body‘).submit().remove();
 1   //点击导出按钮导出excel表格
 2 $("#btn").on("click",function(){
 3     var params = {};
 4     postExcelFile(params, "http://www.XXX_excel");
 5 });
 6
 7 //params是post请求需要的参数,url是请求url地址
 8 function postExcelFile(params, url) {
 9     var form = document.createElement("form");
10     form.style.display = ‘none‘;
11     form.action = url;
12     form.method = "post";
13     document.body.appendChild(form);
14
15     for(var key in params){
16       var input = document.createElement("input");
17       input.type = "hidden";
18       input.name = key;
19       input.value = params[key];
20       form.appendChild(input);
21     }
22
23     form.submit();
24     form.remove();
25   }

原文地址:https://www.cnblogs.com/chengxiaofei2018/p/10612057.html

时间: 2024-10-15 06:56:56

【ajax导出excel数据异常】的相关文章

Java中导出Excel数据,封装Bean

在Java中封装导出Excel数据的总体思路为: 1.导出,根据查询得到的数据(一般我们页面上用的是查询条件带分页的),我们需要把查询条件带到后台重新查询,并且是查询全部数据,不带分页 2.不能用ajax异步提交.应该用location.href=""的方式,把处理的流交给浏览器来处理,JS无法处理流计算. 3.封装统一的Bean实体,主要输入导出的列名,excel名,数据集即可导出. 用到的Maven地址: <!-- poi --> <dependency>

导出Excel出现“异常来自 HRESULT:0x800A03EC”错误的解决方法(已验证)

导出Excel出现“异常来自 HRESULT:0x800A03EC”错误的解决方法(已验证) 好不容易找到解决了导出数据到Excel出现“异常来自 HRESULT:0x800A03EC”的错误. 从google上搜索解决方案,网上的解决方案基本上都是说开始行的下标值写成了0导致的“excel.Cells[0, 1] = "第1行第1列";”,改为大于0就能解决,等这些都是没有效果.插入断点,调试程序,又出现“不能单步执行”的错误. 后来又仔细看了这个异常,发现异常是从 “excel.A

导出EXCEL数据时防止数值变科学计数的办法

网上有很多说法,最简单直接正确的做法是判断一下是否为数值以及长度,然后给单元格加上以下CSS即可: mso-generic-font-family:auto;   mso-font-charset:134;    mso-number-format:"\@";   mso-background-source:auto;   mso-pattern:auto; 这个办法我是从:http://www.cnblogs.com/joinger/articles/1322931.html 这个博

导出Excel数据

先要导入jxl架包,其中的abc.xls为测试Excel,具体代码如下,仅供参考: import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import jxl.Cell; import jxl.Sheet; import jxl.Wo

ajax请求json数据异常:nested exception is net.sf.json.JSONException: java.lang.reflect.InvocationTargetException] with root cause

ajax请求json数据异常:nested exception is net.sf.json.JSONException: java.lang.reflect.InvocationTargetException] with root cause 1.异常原因:所请求的json数据中包含java.util.date数据类型,但是在后台并没有将其格式转换 2.解决方法:添加工具类DateJsonValueProcessor import java.text.SimpleDateFormat; imp

php导出excel数据使用csv替代xls格式

php导出excel数据使用csv替代xls格式 一直以来需要将某些后台数据导出来以供运营人员查看,因为他们都用excel.所以最初的选择是用phpExcel这个工具包来实现导出数据为xls格式,后来发现数据量比较大的情况下(超过1W),就比较慢了. http://www.zroran.com/it/php/9.html 之前使用phpexcel的过程如下 $objPHPExcel = new PHPExcel(); $excelobj = $objPHPExcel->setActiveShee

[转] Asp.Net 导出 Excel 数据的9种方案

湛刚 de BLOG 原文地址 Asp.Net 导出 Excel 数据的9种方案 简介 Excel 的强大之处在于它不仅仅只能打开Excel格式的文档,它还能打开CSV格式.Tab格式.website table 等多钟格式的文档.它具备自动识别行号,字符,格式化数字等功能,例如:如果你在Excel 单元格中输入数字 "123456789012" 会自动转化为"1.23457E+11". 背景介绍 正因为Excel的强大和易用,大家都喜欢将数据导出为 Excel 备

基于POI导出Excel数据

基于POI导出Excel数据 在项目中会有许多报表业务,需要导出数据.在这里我们采用基于POI的方式解析.POI有俩种解析方式HSSF(xls格式)和XSSF(xlsx). 以BOS物流的运单管理界面为例: 前端代码 导出运单信息,生成报表: 1.添加导出按钮 2.添加导出事件 后台代码实现 POI生成Excel步骤写Excel过程一样,新建Excel文档----新建Sheet---新建Row---新建Cell单元格---写单元格数据. Maven导入jar包信息请参加一键上传里面的配置 Act

spring+struts2+mybatis中poi导出excel数据

1.html <div id="formDiv"> <form id="dynamicForm" target="_blank"> </form> </div> <a href="javascript:void(0);" id="exporExcel" class="easyui-linkbutton" iconCls="i