前端代码

$("#id_pullout").click(function () {
//发送ajax请求
$.ajax({
url: '/pullout/', //请求的url
method: "post", //默认get
xhrFields: {
responseType: "arraybuffer",
},
    // 这个选项必须得有,要不文件打不开
data: {'csrfmiddlewaretoken': '{{ csrf_token }}'},
success: function (response) {
        //data接收响应体,必须要有
let blob = new Blob([response], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
        //这里。必须得指定格式,每个格式的文件都不一样
});
let link = document.createElement("a");
link.href = window.URL.createObjectURL(blob);
<!--link.download = fileName;-->
link.download = '导出数据.xlsx';
link.click();
window.URL.revokeObjectURL(link.href);
}
})
})

后端
def export_datas(request):
try:
    //  这里重新封装了reponse,
response = HttpResponse()
response['Content-Type'] = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
     
# todo fileName
file_time = time.strftime('%Y-%m-%d %X')
response['fileName'] = file_time+'/'+request.user.username+'.xlsx'
response['Content-Disposition'] = 'attachment;filename="{}.xlsx"'.format(file_time)
response['Accept-Encoding'] = 'gzip, deflate, br'
# print(response.get('fileName'))
outdata=BytesIO()
    // 使用IO操作,把二进制数据存起来
with open('导出文件.xlsx','rb') as f:
outdata.write(f.read())
response.write(outdata.getvalue())
     //这个啥操作没看懂说实话
return response
except Exception as e:
print([e])
return e
这个是魔改了其他大神的东西,有的地方不是很明白,但是起码能用在自己的项目上了
原文链接如下,
https://www.cnblogs.com/jun-zhou/p/16219664.html

django+ajax实现xlsx文件下载功能的更多相关文章

  1. [django]利用xlwt实现文件下载功能

    代码: url.py: url(r'^importmould/$', 'keywork.views.xls_mould', name='xls_mould'), view.py: from djang ...

  2. django+ajax用FileResponse文件下载到浏览器过程中遇到的问题

    问题: 公司的需求是从mongodb中查找数据并下载回本地,但是在将文件从mongodb通过django服务端,然后从django服务端向浏览器下载文件.但是在下载的时候出了些问题.由于是用的ajax ...

  3. JAVA文件下载功能问题解决日志

    今天给报告系统做了个下载功能,遇到了挺多问题,通过查资料一一解决了. 1.首先遇到的问题是:java后台的输出流输出之后,没有任何报错,浏览器端不弹出保存文件的对话框,原本是ajax请求到后台的con ...

  4. Django ajax MYSQL Highcharts<1>

    Another small project with django/Ajax/Mysql/Highcharts. 看下效果图  - delivery dashboard .嘿嘿 是不是还蛮好看的. 废 ...

  5. WebView实现文件下载功能

    WebView控制调用相应的WEB页面进行展示.安卓源码当碰到页面有下载链接的时候,点击上去是一点反应都没有的.原来是因为WebView默认没有开启文件下载的功能,如果要实现文件下载的功能,需要设置W ...

  6. 关于Django Ajax CSRF 认证

    CSRF(Cross-site request forgery跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的 ...

  7. django ajax增 删 改 查

    具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...

  8. Django Ajax序列化与反序列化

    序列化与反序列是最常用的功能,有时我们需要将一个表单组打包成Json格式等然后再提交给服务端,这样可以提高效率节约带框,如下是Django配合Ajax实现的序列化与反序列化,文件上传等操作. Ajax ...

  9. 解决springmvc中文件下载功能中使用javax.servlet.ServletOutputStream out = response.getOutputStream();后运行出异常但结果正确的问题

    问题描述: 在springmvc中实现文件下载功能一般都会使用javax.servlet.ServletOutputStream out = response.getOutputStream();封装 ...

  10. Ajax 生成流文件下载 以及复选框的实现

    JQuery的ajax函数的返回类型只有xml.text.json.html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载.但可以用js生成一个form, ...

随机推荐

  1. laravel 导入导出(实际上还是php代码实现)

    1.导出 public function excel(){        $data=User::all();        $data=json_decode(json_encode($data), ...

  2. Rancher v2.4.8 容器管理平台-集群搭建(基于k8s)

    整体概要 1.准备VMware+Ubuntu(ubuntu-20.04-live-server-amd64.iso)三台,一主两从(master,node1,node2) 2.在三台服务器上安装 do ...

  3. lua中self的意义

    原文链接 最近在用合宙的Air302开发物联网项目,因为合宙用的自家的luatOS操作系统,二次开发全都要用lua写,据说lua写起代码比C更方便,但是不会就是不会啊喂!!学不会就是不方便啊,例如这个 ...

  4. LVS+keepalived实现负载均衡&高可用(原来以及部署方法)

    一.ARP技术概念介绍 为什么讲ARP技术,因为平常工作中有接触.还有就是LVS的dr模式是用到arp的技术和数据. 1.什么是ARP协议 ARP协议全程地址解析协议(AddressResolutio ...

  5. Java+selenium自动爬取网站内容并写入本地

    目的:本文主要描述如何使用Java+selenium爬取58同城招聘页,并记录指定职位的招聘公司名保存到本地 一.首先创建一个maven工程,配置依赖包 1 <dependencies> ...

  6. MVC内置对象

    MVC内置函数 ----HTML页 <!DOCTYPE html> <html> <head>     <meta charset="utf-8&q ...

  7. Jmeter前置处理器和后置处理器的使用

    一.JMETER基本概念  1. 测试计划:顶级菜单,代表一个测试计划: 2. 线程组:代表一个要测试的场景(各种相关的交易集合),对于性能测试来说可以指定多少个用户完成这个场景的内容,对于自动化测试 ...

  8. pytest之conftest.py

    一.conftest.py的特点 1.可以跨.py文件调用,有多个.py文件调用时,可让conftest.py只调用了一次fixture,或调用多次fixture 2.conftest.py与运行的用 ...

  9. bert一些思考

    bert结构 首先是embdding lookup,[batch * seq]-->[batch, seq, hidden] 然后是加个mask embdding和type embdding和p ...

  10. vue-element-admin 安装运行失败

    1.clone代码后 npm install,结果报错,如下: 解决方法: 在github中的添加新的ssh (生成ssh链接:https://blog.csdn.net/qq_35495339/ar ...