美文网首页python3学习python进阶
flask生成excel下载文件

flask生成excel下载文件

作者: nummycode | 来源:发表于2016-05-01 10:32 被阅读4491次

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

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

    一.读取服务器文件

    response = make_response(send_file("myfiles.xls"))
    response.headers["Content-Disposition"] = "attachment; filename=myfiles.xls;"
    return response
    

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

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

    pip install tablib
    

    下面是生成xls文件示例:

    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即可。

    相关文章

      网友评论

      本文标题:flask生成excel下载文件

      本文链接:https://www.haomeiwen.com/subject/mkgkrttx.html