django返回excel文件给前端下载
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文件给前端下载相关推荐
- nodejs调用后端接口返回excel文件流,nodejs再转发前端实现下载excel
今天在项目上遇到了一个问题,就是后端接口返回excel文件流,然后前端实现下载excel,前端下载的excel文件居然无法打开! 在网上搜索了很多对应的资料,也尝试了很多办法,还是没能解决,最后在这篇 ...
- django返回指定html文件,Django返回HTML文件的实现方法
前面我们简单的了解Django的一些工作原理,其中关于页面展示的内容,也全部都是视图(Views)返回的内容,那么我们也知道前端包括很多内容.如:HTML,CSS,JavaScript等以及各种插件, ...
- 数据导出到excel文件给客户端下载的几种方法
(原创)datagrid数据导出到excel文件给客户端下载的几种方法 看到这个觉得这个人很厉害,mvp啊. 我就改成这个样子了. Response.Clear(); Respons ...
- vue3采用xlsx库实现上传excel文件,前端解析展示数据(日期转换问题解决)
项目中需要实现点击导入excel文件后前端进行解析,将数据展示在页面上,确认后上传至后台的功能,为了便于用户查看,可将所有已上传至后台的数据重新展示在页面表格中.具体实现步骤如下: 1.下载插件 np ...
- Django实战之文件上传下载
项目介绍 最近学习django,通过文件上传下载这个小项目,总结下常用的知识点. 做这个案例我有以下需求: 1.要支持一次上传多个文件 2.支持上传后记录上传的数据以及列表展示 3.支持下载和删除文件 ...
- java实现excel文件上传_java相关:SpringMVC下实现Excel文件上传下载
java相关:SpringMVC下实现Excel文件上传下载 发布于 2020-6-21| 复制链接 摘记: 在实际应用中,经常会遇到上传Excel或者下载Excel的情况,比如导入数据.下载统计数据 ...
- java pdf文件下载_Java后台返回PDF文件预览下载
Java后台返回PDF文件预览下载 开始的代码的系统代码为: ResponseEntity onePdf = s3Wrapper.download(contractEntity.getContract ...
- 前端处理后端返回的excel文件流并下载
项目中遇到上传excel,后端写的接口是当重复上传相同信息的excel时会吐出excel二进制文件流,这种文件流需要前端下载供用户看. 首先后端的接口需要上传文件已formData形式上传 这里我用的 ...
- 普通文件下载 + 前端获取后端返回的文件流并下载
参考资料 前端接受后端文件流并下载的几种方法 ajax 请求二进制流 图片 文件 XMLHttpRequest 请求并处理二进制流数据 之最佳实践 ajax请求二进制流进行处理(ajax异步下载文件) ...
最新文章
- AJAX 请求真的不安全么?
- 基本排序算法之4——归并排序mergesort
- Linux内核的时钟中断
- 潜在狄利克雷分配(Latent Dirichlet Allocation,LDA)
- JAVA面试要点006---.net中的委托与java中的代理模式和委托
- 计算机打开共享网络连接打印机共享打印机,WIN7怎么连接共享打印机?如何设置和连接局域网共享打印机...
- UCOS操作系统——任务管理(二)
- Unity下载安装及许可证获取教程
- access vba代码全部丢失_Access2016由于无法读取数据库中所含的VBA工程,因此无法打开此数据库。只有先删除VBA工程,然后才能打开数据库...
- matlab三次根号怎么打,matlab 3次根号怎么写
- Flask 上传自定义头像_1 使用Flask Uploads
- 瀚高数据库块恢复示例
- 残差连接(skip connect)/(residual connections)
- ArcGIS教程:创建条形图
- 高通骁龙665能不能升级鸿蒙系统,骁龙662处理器好吗 骁龙662和骁龙665谁更好
- BYOD策略的制定关乎企业网络安全
- android studio 使用第三方so库
- 基于java的springboot失物招领系统毕业设计springboot开题报告
- 你的WordPress网站经常被刷恶意搜索词?这有解决办法
- 呼叫中心管理系统的描述