django下载Excel,使用django-excel插件
django下载excel,使用django-excel插件
由于目前的资料多是使用pandas或xlwt库实现的。其实没有那么的麻烦,因为django有相对应的插件django-excel。
该插件是依赖于pyexcel库写的。不过,不用专门安装pyexcel库,因为在安装django-excel时会自动将pyexcel装上。由于pyexcel是一个大库,且在使用django-excel时不用考虑pyexcel的使用方法,所以就不再此介绍太多了。在此,还是要多说一句,pyexcel的功能也是很强大的,可以实现数据的可视化,目前已开发出了与flask、django等web框架的对应插件,比如今天介绍的django-excel。
django-excel是一款支持上传和下载excel文件的插件,并可以将excel文件以网页的形式展现出来,也可以将数据存入数据库。由于,笔者也是刚接触该插件,而且开发需求目前仅为下载功能,所以本篇只介绍其下载的功能。(注:实现下载功能,部署的服务器无需安装office)
1、 安装
pip install django-excel
安装时会自动安装pyexcel-io、pyexcel、pyexcel-webio
2、 支持django的版本
目前已支持到django2.1.1版本。所以,使用目前django最新版的开发者也不用担心了,因为它支持。
3、 实现下载
该插件支持的数据格式很多,array(二维数组)、字典、数据库的表(单张或多张)、django的orm查询结果(query sqt)等等。可以生成的文件类型:csv、tsv、csvz、tsvz、xls、xlsx、xlsm、ods。
包名 |
支持的文件格式 |
依赖 |
python版本 |
|
csv, csvz , tsv, tsvz |
|
2.6, 2.7, 3.3, 3.4, 3.5, 3.6 pypy |
|
xls, xlsx(只读), xlsm(只读) |
, |
同上 |
|
xlsx |
|
同上 |
|
ods |
, lxml |
2.6, 2.7, 3.3, 3.4 3.5, 3.6 |
|
ods |
|
同上 |
上表是生成对应文件格式所需安装的包。
如果是要使用二维数组生成excel文件,则需return django_excel.make_response_from_array(二维数组名, 生成的文件类型, status=200)。二维数组每一行代表excel中相应的行。
如果想要使用字典生成excel文件,则需return django_excel.make_response_from_dict(字典名, 文件类型, status=200)。键名为列名,键值为数据。
如果想要使用数据库的表(单张)生成excel文件,则需return django_excel.make_response_from_a_table(表名, 文件类型, status=200)
如果想要使用数据库的表(多张)生成excel文件,则需return django_excel.make_response_from_tables(表名列表, 文件类型status=200)
如果想要使用查询集合生成excel文件,则需return django_excel.make_response_from_query_sets(查询集合名, 所需列对应字段(列表类型),文件类型, status=200)。所需列对应字段的列表里的顺序为excel列名的顺序,且列表里的元素必须为model里的变量名。
所有函数的通用参数包含file_name 和sheet_name,分别为文件名和excel的工作薄名。
注意,不论是数据库表还是查询集合,都不能包含外键否则会报错,而且只能通过页面的跳转实现下载,不能通过ajax请求,否则不会下载。
eg:
models.py
class django_test_1(models.model): abc = models.charfield(max_length=20,db_column='测试')
views.py
1 import django_excel as excel 2 3 def download_excel(request): 4 5 data_excel =django_test_1.objects.all() 6 7 column_names = ["abc"] 8 9 return excel.make_response_from_query_sets(data_excel,column_names, "xlsx",status = 200 ,sheet_name='测试',file_name='测试文件')
以上仅为笔者目前的见解,没有写全。如果感兴趣可以直接阅读其官方文档:http://django.pyexcel.org/en/latest/
上一篇: python实现按行切分文本文件的方法
下一篇: 三、wss连接B站弹幕
推荐阅读
-
使用EasyExcel上传下载excel
-
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
-
在windows下使用淘宝的nginx插件 nginx_concat_module (附下载地址)
-
django项目使用layui插件给网站设置一个日历挂件,很简单实用。
-
php不使用插件导出excel的简单方法
-
在vscode中安装使用pylint-django插件解决pylint的一些不必要的错误提示
-
在windows下使用淘宝的nginx插件 nginx_concat_module (附下载地址)
-
火狐浏览器怎么设置迅雷下载?火狐浏览器迅雷插件使用方法介绍
-
就要K歌唱歌插件下载安装使用步骤
-
百度PPT遥控器插件在哪里?怎么下载使用?