JavaScript方法

function importTemplate() {
$.ajax({
url: "/importTemplate",
type: "get",
success: function (data) {
let downloadUrl = "../importTemplate"
// 创建a标签
let label = $("<a>");
// 添加属性
label.prop("href",downloadUrl);
// 追加标签
$("body").append(label);
// 点击a标签
label[0].click();
// 点击后移除标签
label.remove();
}
})
}

//Excel导出
form.on('submit(exportExcel)', function (){
var dataJson = {};
if (book_tb_this != null) {
console.log("缓存数据格式:",book_tb_this.where);
dataJson = book_tb_this.where;
}
$.ajax({
url: "status/export",
data: dataJson,
type: "get",
xhrFields: {
responseType: 'blob' // 设置响应类型为二进制流
},
success: function (response, status, xhr) {
// 从响应头获取文件名
var blob = new Blob([response], { type: xhr.getResponseHeader('Content-Type') });
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = "占用状态报表.xlsx";
// 设置下载文件的名称
link.click();
}
})
});


后端输出流
OutputStream os = null;
try {
response.reset();
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(fileName, "UTF-8"));
response.setHeader("Content-Type", "application/octet-stream");
response.setHeader("Connection", "close");
os = response.getOutputStream();
wb.write(os);
os.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (os != null) {
os.close();
}
if (wb != null) {
wb.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}

前端ajax调用后端下载Excel模板流,解决输出乱码等问题的更多相关文章

  1. webApi前端ajax调用后端返回{"readyState":0,"status":0,"statusText":"error"}解决方案

    var url = data.url, params = data.params, try_times = data.try_times , async = data.sync == 'false' ...

  2. 下载excel模板,导入数据时需要用到

    页面代码: <form id="form1" enctype="multipart/form-data"> <div style=" ...

  3. java的poi技术下载Excel模板上传Excel读取Excel中内容(SSM框架)

    使用到的jar包 JSP: client.jsp <%@ page language="java" contentType="text/html; charset= ...

  4. vue Excel导入,下载Excel模板,导出Excel

    vue  Excel导入,下载Excel模板,导出Excel vue  Excel导入,下载Excel模板 <template> <div style="display: ...

  5. 前端axios下载excel,并解决axios返回header无法获取所有数据的问题

    需求:通过后端接口下载excel文件,后端没有文件地址,返回二进制流文件 实现:axios(ajax类似) 主要代码: axios:设置返回数据格式为blob或者arraybuffer 如: var ...

  6. java 下载Excel模板

    前端: JSP: <div id="insertBtn" class="MyCssBtn leftBtn" onclick="download( ...

  7. 前端https调用后端http

    昨晚发生了一个,很........的事 我前端的域名  和后端的域名 都没有做认证,前端的访问的80 调用的后端80 然后我给前端的域名做了认证ssl,但是调用后端的时候报错 原因是  https 调 ...

  8. download下载excel模板的代码

    <%-- 直接在JSP页面中进行文件下载的代码(改 Servlet 或者 JavaBean 的话自己改吧), 支持中文附件名(做了转内码处理). 事实上只要向 out 输出字节就被认为是附件内容 ...

  9. java下载Excel模板(工具类)

    一次文件下载记录 一次不成熟的文件下载操作记录,希望能对需要的人有所帮助. 1.前端代码 $("#downloadModel").click(function(){ var mod ...

  10. poi下载excel模板

    /** * 下载模板 * @param tplName * @param returnName * @param response * @param request * @throws Excepti ...

随机推荐

  1. Nologging到底何时才能生效

    转了一篇EYGLE的文章 -------------------------------------------------- 最初的问题是这个帖子: http://www.itpub.net/sho ...

  2. 谁说docker-compose不能水平扩展容器、服务多实例?

    ❝ 虽说我已经从docker-compose走上了docker swarm的邪门歪道,目前被迫走在k8s这条康庄大道, 但是我还是喜欢docker-compose简洁有效的部署方式. ❞ 曾其何时 d ...

  3. Android里使用AspectJ实现双击自定义注解

    创建注解 首先创建一个双击注解. import java.lang.annotation.ElementType; import java.lang.annotation.Retention; imp ...

  4. golang获取windows版本和详细信息

    场景: 将木马丢到感染机运行后回连时希望返回感染机的操作系统信息.golang 可以通过runtime.OS获取到操作系统类型,但是无法获取详细的版本信息,如win7 win10等, 解决方案; 下面 ...

  5. 以二进制文件安装K8S之部署Master高可用集群

    如下以二进制文件方式部署安全的Kubernetes Master高可用集群,具体步骤如下: 1.下载Kubernetes服务的二进制文件 2.部署kube-apiserver服务 3.创建客户端CA证 ...

  6. 学习go语言编程之错误处理

    error接口 Golang中有一个关于错误处理的标准模式,即:error接口. type error interface { Error() string } 对于大多数函数,如果要返回错误,大致上 ...

  7. Python输出日志信息

    在Python中要输出日志信息有2种方式: 1.调用内置的print()方法,该方式只能将信息输出到控制台 2.使用logging模块将日志信息输出到文件中(logging模块默认也是输出到控制台:标 ...

  8. mybatis处理集合、数组参数使用in查询

    对于mybatis的参数类型是集合数组的时候进行查询. 第一种:参数list ,使用mybatis的标签 1 SELECT * FROM TABLE_NAME AS a WHERE 2 3 a.id ...

  9. Hi3516开发笔记(十一):通过HiTools使用网口将uboot、kernel、roofts烧写进eMMC

    前言   前面烧写一直时烧写进入flush,是按照分区烧写.定制的板子挂的是eMMC,前面的烧写步骤一致,但是在烧写目标则时烧写eMMC了.  重新走一遍从无到有通过网口刷定制板卡的uboot.ker ...

  10. vue 项目npm run dev(启动)时报错The service was stopped

    vue项目yarn upgrade后vite build报错,如何项目也运行不起来了. 报错截图: 解决办法: 删除node_modules文件夹,然后执行yarn install重新生成心的node ...