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,调用浏览器下载相关推荐

  1. python中tushare数据可以导出嘛_Python与交易策略分析tushare/baostock库介绍(附代码)...

    前言:金融数据中最典型的就是资产价格的涨跌情况.想要分析金融资产的投资策略,第一步就是历史数据的获取.tushare正是为导入历史金融资产数据而开发,它大大方便了用Python进行金融资产交易策略的探 ...

  2. python数据处理2: 拟合数据、整合数据、导出数据

    目录 目标 软件 教程 实现 导入库函数 定义拟合函数 拟合数据 获得拟合曲线 数据可视化绘图 效果 数据合并 数据导出 总结 参考 目标 继python数据处理1: 导入数据.片选数据.数据绘图,采 ...

  3. python导出结果_Python连接Oracle数据查询导出结果

    python连接oracle,需用用到模块cx_oracle,可以直接pip安装,如网络不好,可下载离线后本地安装 本人由于工作需要,期望便捷查询所得结果,且固定输出某个格式 具体代码如下: #! c ...

  4. python数据导出excel_Python-将数据表中数据导出到excel

    '''需求:写一个函数,随便输入一个表名,把这个表里面所有的数据,导出到excel里面 思路: 1.'select * from %s' ,查出这个表所有的数据 2.再把所有的数据写到excel xl ...

  5. python 批量查询网页导出结果_python导出网页数据到excel表格-如何使用python将大量数据导出到Excel中的小技巧...

    如何用python把返回的html提取相应的内容到excel 下载扩展库 xlrd 读excle xlwt 写excle 直百度上搜就能下载 下载后使用 import xlrd 就读excle了 打开 ...

  6. 使用python自动生成病例数据并导出excel(附代码)

    因为实验需要处理大量的数据,便考虑进行自动生成,结果如下 代码如下 import time import random province=['河北','山西','辽宁','吉林','黑龙江','江苏' ...

  7. 项目数据字典数据导入导出

    项目数据字典数据导入导出 1.引入导入导出依赖 2.数据导出,将数据写到excel文件中 2.1.封装对象,用于接收导出数据 2.2.编写控制层方法 2.3.编写业务层方法 2.3.1.接口 2.3. ...

  8. 导出matlab程序,Matlab数据导入导出

    Matlab提供了从磁盘文件或剪贴簿转载数据至工作区(数据导入)和将工作区变量存入磁盘文件(数据导出)的多种途径. 最简单的办法是使用界面导入向导,打开文件菜单中的导入数据而后按提示操作. 一.导入文 ...

  9. 借助云开发轻松实现后台数据批量导出丨实战

    小程序导出数据到excel表,借助云开发后台实现excel数据的保存 我们在开发小程序的过程中,可能会有这样的需求:如何将云数据库里的数据批量导出到excel表里? 这个需求可以用强大的云开发轻松实现 ...

最新文章

  1. 零基础可以学好UI设计吗
  2. 三维重建的核心模块有哪些?
  3. python画仿真图-Python数据分析:绘图可视化之matplotlib入门
  4. 从淘宝 UWP 的新功能 -- 比较页面来谈谈 UWP 的窗口多开功能
  5. cache与buffer
  6. Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(三)答案查询
  7. iTerm2多个窗口同时输入命令
  8. block与inline,inline和inline-block,块级和行内元素,行内替换和行内非替换元素
  9. Catch That Cow——BFS
  10. Irrlicht例001--Hello World
  11. css文字背景蒙版_使用CSS创建蒙版的背景效果
  12. (lintcode)第4题 丑数II
  13. 用React Hooks与Web Animation API实现动效组件
  14. 第二章 03 藤蔓生长
  15. Linux Mint 11开启Compiz Fusion特效
  16. mysql5.7源码安装 简书_在CentOS7上编译安装MySQL 5.7.13步骤详解
  17. datagridview 单击某个单元格选中一行
  18. 日语学习(简单语法-2)
  19. 一、ECharts(各种统计图)
  20. Unity3D的Rigidbody类中useGravity、isKinematic和velocity的使用注解

热门文章

  1. =在 java中怎么表示_在Java中各种类型运算符的介绍与其基本使用方式(有具体使用示例)...
  2. 分页的limit_20.MySQL中的LIMIT(分页)
  3. 奇迹世界服务器不响应,sun-奇迹世界 目前常见问题解决方法
  4. mysql常用命令英文词汇_MySQL中文全文索引插件 mysqlcft 1.0.0 安装使用文档
  5. mysql low_case_MySQL8.0的坑之lower_case_table_names
  6. java构造方法和实例化,10. JavaSE-子类实例化过程 构造方法间调用
  7. linux 文件重命名_如何在 Linux 上重命名一组文件 | Linux 中国
  8. linux打开另一台linux的图形化,【工具大道】ssh登录Linux服务器,并显示图形化界面...
  9. Django框架里的MVC思想
  10. GetAdaptersInfo获取MAC地址