前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >flask生成excel下载文件

flask生成excel下载文件

作者头像
用户2936342
发布2018-08-27 14:43:37
2K0
发布2018-08-27 14:43:37
举报
文章被收录于专栏:nummy

最近在使用flask的项目开发中需要从数据库读取数据,生成excel格式文件,然后供用户下载。如果想让用户下载一个文件,在http response里设置 Content-Disposition = attachment 然后设置filename即可。 下载文件分两种情况:

  • 读取服务器文件。
  • 后台程序直接生成文件内容。

一.读取服务器文件

代码语言:javascript
复制
response = make_response(send_file("myfiles.xls"))
response.headers["Content-Disposition"] = "attachment; filename=myfiles.xls;"
return response

二.后台程序直接生成文件

这里以生成xls文件为例,需要安装第三方库tablib:

代码语言:javascript
复制
pip install tablib

下面是生成xls文件示例:

代码语言:javascript
复制
import tablib  
headers = (u"姓名", u"性别", u"年龄")
info = [
    (u"李磊", u"男", u"20"),
    (u"王艳", u"女", u"18"),
]
data = tablib.Dataset(*info, headers=headers)
  
#然后就可以通过下面这种方式得到各种格式的数据了。  
data.xlsx  
data.xls  
data.ods  
data.json  
data.yaml  
data.csv  
data.tsv  
data.html  
  
#增加行  
data.append([u'小明', u'男',18])  
#增加列  
data.append_col([22, 20,13], header=u'年龄')  
print data.csv  
  
#删除行  
del data[1:3]  
#删除列  
del data[u'年龄']  
print data.csv 
#导出excel表
open('xxx.xls', 'wb').write(data.xls)
#多个sheet的excel表
book = tablib.Databook((data1, data2, data3))
book.xls

注意

使用xls格式的话,最大行数为65536,如果要取消这个限制,导出文件为book.xlsx即可。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.05.01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.读取服务器文件
  • 二.后台程序直接生成文件
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档