前端代码

$("#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. Vue.Draggable使用总结

    Draggable为基于Sortable.js的vue组件,用以实现拖拽功能. 特性 支持触摸设备 支持拖拽和选择文本 支持智能滚动 支持不同列表之间的拖拽 不以jQuery为基础 和视图模型同步刷新 ...

  2. 语言-页面-模板-Velocity

    Velocity教程 - 简书 (jianshu.com) Velocity模板引擎详解 - Velocity 教程 | 编程字典 (codingdict.com) Velocity模板(VM)语言介 ...

  3. C# TreeView查获节点并选中节点

    在一个项目中用到了TreeView,但是每次刷新TreeView的数据之后,所有的节点都会折叠起来 非常影响用户体验,使用下面的方法可以解决这个问题 string LastSelectNode = & ...

  4. 转—记录一下获取NC程序名称的方法

    案例源代码如下: #include <uf_obj.h> #include <uf_setup.h> #include <uf_ncgroup.h> static ...

  5. el-dropdown-item 添加点击 事件无效 (vue)

    如图 无效!!! 为什么呢?? 想了一下,可能是因为 el-dropdown-item   没有自定义click事件 so! 解决办法就是  添加原生事件  :  @click.native   还有 ...

  6. 解决通过Eclipse启动Tomcat-Run On Server无法选择Tomcat v7.0的问题

    在eclipse中配置Tomcat并启动右键项目 -> Run As -> Run on Server可能会出现无法选择Tomcat v7.0的现象如下图,不慌菜鸟小编带你解决!1.定位到 ...

  7. Hackintool查看CFG锁显示空白

    Hackintool是黑苹果配置的得力工具,通过在Hackintool > 工具 > 从AppleIntelInfo中获取 可以看到cfg是否成功解锁.但是如果点击该按钮后输入密码执行CP ...

  8. .netcore 跨域问题

    CORS(跨域资源共享)是一种W3C标准,允许服务器放宽同源策略.使用CORS,服务器可以在显式允许某些跨域请求时拒绝其他跨域请求.CORS是相比其他跨域技术(比如JSONP)更安全.更灵活. ASP ...

  9. oracle建表和sqlserver建表

    oracle declare num number;begin select count(1) into num from user_all_tables where Upper(Table_Name ...

  10. 1903021126 申文骏 Java 第二周作业 代码编写及运行

    项目 内容 课程班级博客链接 19级信计班(本) 作业要求链接 Java第二周作业 博客名称 1903021126 申文骏 Java 第二周作业 代码编写及运行 要求 每道题要有题目,代码(使用插入代 ...