python控制浏览器导出数据_Django导出数据为Excel,调用浏览器下载
1. 环境
Django (2.1.10) + Python3.6 + xlwt (1.3.0)
操作系统使用的为:Windows 7
2. 接口代码
defnow_export(request):
data_list= CIP.objects.all() #获取数据的查询集
if notdata_list:return HttpResponse(json.dumps({"state": "1", "msg": "查无数据,导出失败"}), content_type="application/json")
ws= Workbook(encoding='utf-8') #设置Excel为UTF-8的编码格式
w = ws.add_sheet(u"正在清洗的CIP报表") #设置sheet名称
w.write(0, 0, "id")
w.write(0,1, u"清洗线路")
w.write(0,2, u"操作者")
w.write(0,3, u"清洗目标")
w.write(0,4, u"清洗类型")
w.write(0,5, u"CIP状态")
w.write(0,6, u"开始时间")#把需要导出的数据写到文件中
excel_row = 1
for obj indata_list:
w.write(excel_row, 0, excel_row)
w.write(excel_row,1, obj.CIPNo)
w.write(excel_row,2, obj.oper)
w.write(excel_row,3, obj.ccid)
w.write(excel_row,4, obj.mode)
w.write(excel_row,5, "CIP程序启动")
w.write(excel_row,6, datetime.strftime(obj.start_time, '%Y-%m-%d %H:%M:%S'))
excel_row+= 1sio=BytesIO() # 写出到IO
ws.save(sio)
sio.seek(0) # 重新定位到开始
response= HttpResponse(sio.getvalue(), content_type='application/vnd.ms-excel') #设置文件格式为Excel
#attachment(意味着消息体应该被下载到本地;大多数浏览器会呈现一个“保存为”的对话框,将filename的值预填为下载后的文件名)
response['Content-Disposition'] = 'attachment; filename=test.xls'response.write(sio.getvalue())return response
提示:若出现 TypeError: string argument expected, got 'bytes' 错误。问题出现在使用StringIO的write方法上,用BytesIO替代StringIO即可解决问题,笔者这里已经替换过了
3. 前端请求
注意:但需要注意的是,如果想要用这种方式下载文件,不能使用AJAX的方式,而是应该新建一个标签,模拟点击下载。原因为处于安全性考虑,JavaScript无法与磁盘进行交互,因此AJAX得到的内容将被保留在内存中,而不是磁盘上。
3.1 请求方式为GET时:
此时直接在A标签的href属性中指定路由即可
导出报表
3.2 请求方式为POST时:
这种请求 需写一个form表单,把请求所需数据写在表单中,在A标签中指定表单的提交方法即可。(对于a标签实现post请求感兴趣的可以自行百度其他方法)
导出报表
开始日期:
id="startdate" class="input-text Wdate" name="startdate">
结束日期:
id="enddate" class="input-text Wdate" name="enddate">
线路:
all
目标:
all
搜索
python控制浏览器导出数据_Django导出数据为Excel,调用浏览器下载相关推荐
- python中tushare数据可以导出嘛_Python与交易策略分析tushare/baostock库介绍(附代码)...
前言:金融数据中最典型的就是资产价格的涨跌情况.想要分析金融资产的投资策略,第一步就是历史数据的获取.tushare正是为导入历史金融资产数据而开发,它大大方便了用Python进行金融资产交易策略的探 ...
- python数据处理2: 拟合数据、整合数据、导出数据
目录 目标 软件 教程 实现 导入库函数 定义拟合函数 拟合数据 获得拟合曲线 数据可视化绘图 效果 数据合并 数据导出 总结 参考 目标 继python数据处理1: 导入数据.片选数据.数据绘图,采 ...
- python导出结果_Python连接Oracle数据查询导出结果
python连接oracle,需用用到模块cx_oracle,可以直接pip安装,如网络不好,可下载离线后本地安装 本人由于工作需要,期望便捷查询所得结果,且固定输出某个格式 具体代码如下: #! c ...
- python数据导出excel_Python-将数据表中数据导出到excel
'''需求:写一个函数,随便输入一个表名,把这个表里面所有的数据,导出到excel里面 思路: 1.'select * from %s' ,查出这个表所有的数据 2.再把所有的数据写到excel xl ...
- python 批量查询网页导出结果_python导出网页数据到excel表格-如何使用python将大量数据导出到Excel中的小技巧...
如何用python把返回的html提取相应的内容到excel 下载扩展库 xlrd 读excle xlwt 写excle 直百度上搜就能下载 下载后使用 import xlrd 就读excle了 打开 ...
- 使用python自动生成病例数据并导出excel(附代码)
因为实验需要处理大量的数据,便考虑进行自动生成,结果如下 代码如下 import time import random province=['河北','山西','辽宁','吉林','黑龙江','江苏' ...
- 项目数据字典数据导入导出
项目数据字典数据导入导出 1.引入导入导出依赖 2.数据导出,将数据写到excel文件中 2.1.封装对象,用于接收导出数据 2.2.编写控制层方法 2.3.编写业务层方法 2.3.1.接口 2.3. ...
- 导出matlab程序,Matlab数据导入导出
Matlab提供了从磁盘文件或剪贴簿转载数据至工作区(数据导入)和将工作区变量存入磁盘文件(数据导出)的多种途径. 最简单的办法是使用界面导入向导,打开文件菜单中的导入数据而后按提示操作. 一.导入文 ...
- 借助云开发轻松实现后台数据批量导出丨实战
小程序导出数据到excel表,借助云开发后台实现excel数据的保存 我们在开发小程序的过程中,可能会有这样的需求:如何将云数据库里的数据批量导出到excel表里? 这个需求可以用强大的云开发轻松实现 ...
最新文章
- 零基础可以学好UI设计吗
- 三维重建的核心模块有哪些?
- python画仿真图-Python数据分析:绘图可视化之matplotlib入门
- 从淘宝 UWP 的新功能 -- 比较页面来谈谈 UWP 的窗口多开功能
- cache与buffer
- Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(三)答案查询
- iTerm2多个窗口同时输入命令
- block与inline,inline和inline-block,块级和行内元素,行内替换和行内非替换元素
- Catch That Cow——BFS
- Irrlicht例001--Hello World
- css文字背景蒙版_使用CSS创建蒙版的背景效果
- (lintcode)第4题 丑数II
- 用React Hooks与Web Animation API实现动效组件
- 第二章 03 藤蔓生长
- Linux Mint 11开启Compiz Fusion特效
- mysql5.7源码安装 简书_在CentOS7上编译安装MySQL 5.7.13步骤详解
- datagridview 单击某个单元格选中一行
- 日语学习(简单语法-2)
- 一、ECharts(各种统计图)
- Unity3D的Rigidbody类中useGravity、isKinematic和velocity的使用注解
热门文章
- =在 java中怎么表示_在Java中各种类型运算符的介绍与其基本使用方式(有具体使用示例)...
- 分页的limit_20.MySQL中的LIMIT(分页)
- 奇迹世界服务器不响应,sun-奇迹世界 目前常见问题解决方法
- mysql常用命令英文词汇_MySQL中文全文索引插件 mysqlcft 1.0.0 安装使用文档
- mysql low_case_MySQL8.0的坑之lower_case_table_names
- java构造方法和实例化,10. JavaSE-子类实例化过程 构造方法间调用
- linux 文件重命名_如何在 Linux 上重命名一组文件 | Linux 中国
- linux打开另一台linux的图形化,【工具大道】ssh登录Linux服务器,并显示图形化界面...
- Django框架里的MVC思想
- GetAdaptersInfo获取MAC地址