本篇文章给大家带来的内容是关于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版本pyexcel-iocsv, csvz , tsv, tsvz2.6, 2.7, 3.3, 3.4, 3.5, 3.6 pypy

pyexcel-xlsxls, xlsx(只读), xlsm(只读)xlrd, xlwt同上

pyexcel-xlsxxlsxopenpyxl同上

pyexcel-ods3odspyexcel-ezodf, lxml2.6, 2.7, 3.3, 3.4 3.5, 3.6

pyexcel-odsodsodfpy同上

上表是生成对应文件格式所需安装的包。

如果是要使用二维数组生成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.pyclass django_test_1(models.Model):

abc = models.CharField(max_length=20,db_column='测试')

views.pyimport django_excel as excel

def download_excel(request):

data_excel =django_test_1.objects.all()

column_names = ["abc"]

return excel.make_response_from_query_sets(data_excel,column_names, "xlsx",status = 200 ,sheet_name='测试',file_name='测试文件')

以上就是django使用插件下载excel的方法的详细内容,更多请关注php中文网其它相关文章!

本文转载于:博客园,如有侵犯,请联系a@php.cn删除

python excel插件_django使用插件下载excel的方法相关推荐

  1. java使用jxl生成excel表格,jsp使用js下载excel文件xls

    java使用jxl生成excel表格,jsp使用js下载excel文件 后端代码 maven jar包 主体代码逻辑 引入的jar包 具体代码段 重点详解 表头和表格内容两种格式 直接将 HttpSe ...

  2. php手机端下载excel,PHPExcel:在客户端下载Excel文件

    问题已解决:对于可能存在此问题的其他用户 – 请注意PHP文件的编码.如果您使用PHPExcel,它必须是ANSII编码而不是UTF8,否则将彻底下载EXCEL.添加的标题(答案1)在我更改了文件本身 ...

  3. php下载excel文件模板文件,PHP下载excel文件变得腐败

    我有一个excel文件,我希望用户能够从我的服务器下载.我在这里看了很多问题,但我找不到正确下载没有腐败的文件的方法.我假设它是标题但我还没有它们的工作组合.这就是我现在所拥有的,在我收到的损坏文件中 ...

  4. 【导出Excel】Vue实现导出下载Excel文件(blob文件流)--亲测可用

    // 下载blob文件流(暂不支持手机H5唤起下载文件!!!) downloadFile(res: any, fileName: any = '未命名', format: any = '.xlsx') ...

  5. Anaconda下Python中h5py与netCDF4模块下载与安装方法

      本文介绍基于Anaconda,下载并安装Python中h5py与netCDF4这两个模块的方法.h5py与netCDF4这两个模块是与遥感图像处理.地学分析等GIS操作息息相关的模块,应用较为广泛 ...

  6. vue使用xlsx插件下载excel文件

    1.安装xlsx插件 cnpm install xlsx 2.新建xlsx.js文件,添加以下代码,放在plugins或utils插件文件夹下 // 下载excel功能 import XLSX fro ...

  7. java迅雷下载excel,Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)...

    (一) 如果在迅雷的下载对话框中点取消,则会使用IE的下载,这里的文件又是正确的了: 怀疑迅雷是根据下载对话框中的网址重新请求下载,与发起请求的页面已经无关,而IE又不会把ViewState信息传到迅 ...

  8. java下载excel导入excel读取excel数据,将数据插入数据库

    10:如果你想导出excel表格,请链接:http://blog.csdn.net/xuanzhangran/article/details/54709221 导入的效果如下: 1:开始页面 2:点击 ...

  9. Excel按照模板导出并下载

    Excel按照模板导出并下载 仅记录方法,如果使用中遇到问题,并不负责 一般来讲,导出关系型数据库的Excel,可以直接按照数据库中的格式导出,非常简单,之后会贴上简单格式导出的代码. 如果涉及到按照 ...

最新文章

  1. linux磁盘i o跟踪,利用zabbix动态监控磁盘I/O
  2. java读取字符串,生成txt文件
  3. vue 2.0 :key的作用
  4. Leet Code OJ 242. Valid Anagram [Difficulty: Easy]
  5. PPR context node destroy logic
  6. SpringMVC总结帖
  7. Blackcat主题-Wordpress
  8. 形态学运算中腐蚀,膨胀,开运算和闭运算
  9. 嵌入式电路设计(工具准备)
  10. Oracle 数据类型 选择自 tjandy 的 Blog
  11. 添加组件_苹果ios14怎么添加删除小组件 小组件叠放添加设置教程
  12. Mysql DDL与DML
  13. 利用npm命令创建一个Vue项目并安装依赖
  14. 数字水印技术的基本概念和现状
  15. 大数据算法_大数据挖掘十大经典算法
  16. python pandas安装不了_python安装pandas问题!python pandas安装教程
  17. MATLAB计算自相关函数和互相关函数
  18. oracle用exp定时备份数据库,oracle exp备份数据库
  19. iOS开发项目实战狗粮
  20. 【elementUI】el-table树形结构样式修改-gif展示说明 按要求自取即可

热门文章

  1. 什么是SQL Server中的数据库规范化?
  2. 互联网测试开发面试题集锦(下)完结篇
  3. Codeforces ----- Kefa and Dishes [状压dp]
  4. TypeSDK免费手游多渠道SDK接入方案
  5. android 进程间通信---bind的前世
  6. asp.net mvc项目中遇到的古怪的问题,(项目中有frame框架)
  7. SVM中的间隔最大化
  8. Unity Lighting(一)光照练习
  9. springMVC之mvc:interceptors拦截器的用法
  10. sklearn-preprocessing预处理数据的方法