Django使用openpyxl返回excel文件给前端下载

虚拟环境导入

pip install openpyxl

views.py代码:

import datetime
from openpyxl import Workbookdef export_data(request, *args, **kwargs):# 使用get方法res = {}if request.method != 'GET':res['retcode'] = 400res['status'] = '只支持Get方法'return JsonResponse(res)param = request.GETstart_time = param.get('start_time') # 开始时间end_time = param.get('end_time') # 结束时间if not start_time or not end_time or start_time > end_time:res['retcode'] = 500res['status'] = '请输入正确的开始时间与结束时间'return JsonResponse(res)# 获取数据alert_messages = gsm.AlertMessage.objects.filter(addtime__gt=start_time, addtime__lt=end_time)datas = gss.AlertMessageSeirializer(alert_messages, many=True).dataif not alert_messages:res['retcode'] = 500res['status'] = '当前时间段没有数据'return JsonResponse(res)# 创建Excel文件对象xls_am = Workbook()sht1_am = xls_am.active# 把字段名写进Excel表格第一行sht1_am.append(['序号', '告警id', '设备编号', '线路编号','方位', '告警位置', '经度', '纬度', '具体位置','告警类型', '告警等级', '开始时间', '结束时间'])for data in datas:# 按行添加进Excel表格sht1_am.append([data['id'],data['alert_id'],data['device_code'],data['channel_code'],data['channel_name'],data['position'],data['longitude'],data['latitude'],data['address'],data['alarm_type'],data['alarm_level'],data['start_time'],data['end_time']])response = HttpResponse(content_type="application/vnd.ms-excel")now = datetime.datetime.now().strftime("%Y%m%d%H%M%S")response['Content-Disposition'] = 'attachment;filename={0}-{1}.xlsx'.format(urllib.parse.quote("告警数据"), now)output = io.BytesIO()  # 创建在内存中处理对象xls_am.save(output)xls_am.close()response.write(output.getvalue())return response

后记

【后记】为了让大家能够轻松学编程,我创建了一个公众号【轻松学编程】,里面有让你快速学会编程的文章,当然也有一些干货提高你的编程水平,也有一些编程项目适合做一些课程设计等课题。

也可加我微信【1257309054】,拉你进群,大家一起交流学习。
如果文章对您有帮助,请我喝杯咖啡吧!

公众号

关注我,我们一起成长~~

django返回excel文件给前端下载相关推荐

  1. nodejs调用后端接口返回excel文件流,nodejs再转发前端实现下载excel

    今天在项目上遇到了一个问题,就是后端接口返回excel文件流,然后前端实现下载excel,前端下载的excel文件居然无法打开! 在网上搜索了很多对应的资料,也尝试了很多办法,还是没能解决,最后在这篇 ...

  2. django返回指定html文件,Django返回HTML文件的实现方法

    前面我们简单的了解Django的一些工作原理,其中关于页面展示的内容,也全部都是视图(Views)返回的内容,那么我们也知道前端包括很多内容.如:HTML,CSS,JavaScript等以及各种插件, ...

  3. 数据导出到excel文件给客户端下载的几种方法

    (原创)datagrid数据导出到excel文件给客户端下载的几种方法 看到这个觉得这个人很厉害,mvp啊. 我就改成这个样子了.  Response.Clear();         Respons ...

  4. vue3采用xlsx库实现上传excel文件,前端解析展示数据(日期转换问题解决)

    项目中需要实现点击导入excel文件后前端进行解析,将数据展示在页面上,确认后上传至后台的功能,为了便于用户查看,可将所有已上传至后台的数据重新展示在页面表格中.具体实现步骤如下: 1.下载插件 np ...

  5. Django实战之文件上传下载

    项目介绍 最近学习django,通过文件上传下载这个小项目,总结下常用的知识点. 做这个案例我有以下需求: 1.要支持一次上传多个文件 2.支持上传后记录上传的数据以及列表展示 3.支持下载和删除文件 ...

  6. java实现excel文件上传_java相关:SpringMVC下实现Excel文件上传下载

    java相关:SpringMVC下实现Excel文件上传下载 发布于 2020-6-21| 复制链接 摘记: 在实际应用中,经常会遇到上传Excel或者下载Excel的情况,比如导入数据.下载统计数据 ...

  7. java pdf文件下载_Java后台返回PDF文件预览下载

    Java后台返回PDF文件预览下载 开始的代码的系统代码为: ResponseEntity onePdf = s3Wrapper.download(contractEntity.getContract ...

  8. 前端处理后端返回的excel文件流并下载

    项目中遇到上传excel,后端写的接口是当重复上传相同信息的excel时会吐出excel二进制文件流,这种文件流需要前端下载供用户看. 首先后端的接口需要上传文件已formData形式上传 这里我用的 ...

  9. 普通文件下载 + 前端获取后端返回的文件流并下载

    参考资料 前端接受后端文件流并下载的几种方法 ajax 请求二进制流 图片 文件 XMLHttpRequest 请求并处理二进制流数据 之最佳实践 ajax请求二进制流进行处理(ajax异步下载文件) ...

最新文章

  1. AJAX 请求真的不安全么?
  2. 基本排序算法之4——归并排序mergesort
  3. Linux内核的时钟中断
  4. 潜在狄利克雷分配(Latent Dirichlet Allocation,LDA)
  5. JAVA面试要点006---.net中的委托与java中的代理模式和委托
  6. 计算机打开共享网络连接打印机共享打印机,WIN7怎么连接共享打印机?如何设置和连接局域网共享打印机...
  7. UCOS操作系统——任务管理(二)
  8. Unity下载安装及许可证获取教程
  9. access vba代码全部丢失_Access2016由于无法读取数据库中所含的VBA工程,因此无法打开此数据库。只有先删除VBA工程,然后才能打开数据库...
  10. matlab三次根号怎么打,matlab 3次根号怎么写
  11. Flask 上传自定义头像_1 使用Flask Uploads
  12. 瀚高数据库块恢复示例
  13. 残差连接(skip connect)/(residual connections)
  14. ArcGIS教程:创建条形图
  15. 高通骁龙665能不能升级鸿蒙系统,骁龙662处理器好吗 骁龙662和骁龙665谁更好
  16. BYOD策略的制定关乎企业网络安全
  17. android studio 使用第三方so库
  18. 基于java的springboot失物招领系统毕业设计springboot开题报告
  19. 你的WordPress网站经常被刷恶意搜索词?这有解决办法
  20. 呼叫中心管理系统的描述

热门文章

  1. 电影演职员名称的翻译
  2. 微课堂V2 v4.8.2
  3. CAM350技巧【导入gerber文件】【单位尺度设置】【CAM测量】【操作说明与快捷键】【Cam350显示钻孔异常解决】
  4. 关于RFID技术,你了解多少?
  5. Java学习笔记——实体类(ENTITY,VO,DTO,BO)
  6. 开源小游戏app源码和H5小游戏源码大全
  7. UART、RS232、RS485、IIC的通信原理介绍
  8. Matplotlib绘制雷达图和三维图
  9. 小程序weui的使用指南
  10. Linux 创建oracle数据库的详细过程