利用tablib、make_response 进行文件的下载

tablib 主要作用是将数据导出为各种不同的格式,包括excel,json,html,yaml,csv,tsv等格式。使用起来也非常简单。

tablib的下载

1
pip install tablib

下面就是文件下载的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import tablib
from flask import make_response
def file_download():
dataset1 = tablib.Dataset()
header1 = ('ID', 'Name', 'Tel', 'Age')
dataset1.headers = header1
dataset1.append([1, 'zhangsands', 13711111111, 16])
dataset1.append([2, 'lisiasfasd阿斯顿发gwus', 13911111111, 20])
dataset1.append([4, 'zhao发送到li2u', 15811111111, 25])


header2 = ('ID', 'Name', 'Tel', 'Age')
data2 = [
[1, 'zhangsan', 13711111111, 16],
[2, 'lisi', 13811111111, 18],
[3, 'wangwu', 13911111111, 20],
[4, 'zhaoliu', 15811111111, 25]
]
dataset2 = tablib.Dataset(*data2, headers=header2)

dataset1.title = 'dataset1' # 设置Excel中表单的名称
dataset2.title = 'dataset2'

# 如果有多个sheet表单,使用DataBook就可以了
myDataBook = tablib.Databook((dataset1, dataset2))
ds = myDataBook.export('xlsx')

response = make_response(ds)
response.headers['Content-Disposition'] = 'attachment; filename={}'.format('dhel.xlsx')
return response

引用:
Python tablib模块
tablib文档

文章目录