在网页中常常有导出数据的需求,尤其是一下管理类平台。在flask中要导出excel数据表,通常可以使用xlwt库,创建文件并逐行写入数据,但是使用起来总是感觉很麻烦。tablib库相对操作更加方便。

1、安装

pip install tablib

2、生成数据

首先需要生成excel表头信息,以表明每一列是什么意思

headers =('用户名','年龄','姓名','性别','手机号')

将即将导出数据按照表头信息的顺序转变程列表,如:

datas=[('xm','','小明','男',''),(('xh','','小红','女',''))]

生成相应的tablib对象

 Mylist = tablib.Dataset(*datas, headers=headers)

3、导出数据

获取数据对象之后,再根据这个对象生成各种格式的数据文件,可以保存在服务器上供人下载,设置下载所需的response头

path = tempfile.mktemp(prefix='report', suffix='.xls') //设置文件名和文件类型
with open(path, 'wb') as f:
f.write(Mylist.xls) //写入数据
with open(path, 'rb') as f:
resp = make_response(f.read()) //读取数据
os.unlink(path)
resp.headers["Content-Disposition"] = "attachment; filename=excel.xls;"
resp.headers["Content-Type"] = "application/vnd.ms-excel" //设置下载所需的response响应头
return resp //下载数据

这样就完成了excel数据的导出功能。除了将生成的excel数据保存在服务器上之外,还可以直接审查请求的响应。

最新文章

  1. java编码过滤器
  2. 原生的强大DOM选择器querySelector
  3. nohup后台运行jar
  4. phpcms v9无法连接数据库服务器,请检查配置
  5. deb、rpm、tar.gz三种Linux软件包的区别
  6. ArrayList和Iterator的用法
  7. oc中的分类/协议/属性
  8. constructor(构造器)
  9. HDU 3974 Assign the task (DFS序 + 线段树)
  10. hash_map vs unordered_map vs map vs unordered_set
  11. 登录超时,给出提示跳到登录页面(ajax、导入、导出)
  12. Thinking In Java 学习笔记 1-5 章
  13. C/C++语言学习——内存分配管理
  14. 【线段树】【3-21个人赛】【同样的problemB】
  15. 碎碎念,浅饮-------Day30
  16. Sets 比赛时想错方向了。。。。 (大数不能处理负数啊)
  17. [AtCoder arc090F]Number of Digits
  18. Flask--特殊装饰器, CBV, 三方组件
  19. git 忽略部分文件类型的同步
  20. Xshell5

热门文章

  1. html页面引入vue组件
  2. python3编程基础之一:操作
  3. 详解JDBC对象
  4. [Ubuntu] 14.04版本安装JDK8失败
  5. 关于Flutter启动项目白屏,报错[ERROR:flutter/shell/gpu/gpu_surface_gl.cc(58)] Failed to setup Skia Gr context.问题的解决方案
  6. OpenJudge计算概论-自整除数
  7. ISO/IEC 9899:2011 条款6.4.3——通用字符名
  8. WGS84 2 GCJ-02
  9. k8s常可能问的问题
  10. es6 fetch方法请求接口